【问题标题】:CLion GNU STL RenderersCLion GNU STL 渲染器
【发布时间】:2016-02-08 21:32:36
【问题描述】:

我正在尝试调试使用 std::map 的 C++ 程序。
在这篇文章http://blog.jetbrains.com/clion/2015/05/debug-clion/ 中,它说如果您在 CMake 文件中包含 -stdlib=libstdc++,它们支持 GNU STL 渲染器,但是在构建时出现错误。

c++: error: unrecognized command line option '--stdlib=libstdc++'

这是我的 CMake 文件

cmake_minimum_required(VERSION 3.3)

项目(lint)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 --stdlib=libstdc++")

set(SOURCE_FILES main.cpp)
add_executable(lint ${SOURCE_FILES})

这是我的 main.cpp

using namespace std;

int main() {
    list<map<string, int>*>* sint3 = new list<map<string,int>*>;
    sint3->push_front(new map<string,int>);
    return 0;
}

如何让 GNU STL 渲染器像他们的公告所说的那样工作?

【问题讨论】:

    标签: c++ debugging stl cmake clion


    【解决方案1】:

    删除这个多余的破折号:

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -stdlib=libstdc++")
    //                                                  ^^^
    

    一个破折号在命令行中大有帮助!

    另外,请仔细查看链接的文章:

    此功能适用于 GCC,而对于 Clang,它仅适用于 libstdc++。

    根据我的结论,使用 g++,无需附加此选项,渲染器应该开箱即用。

    编辑:必填SO question link

    【讨论】:

    • 我仍然得到相同的错误 c++: 错误:无法识别的命令行选项 '-stdlib=libstdc++'
    • 试试-stdlib=libc++,看看我在问题下的评论。
    • 这不起作用,您发布的链接与 MacOSX 相关,对吧?我在使用 Cygwin 的 Windows 上。
    • @McDonnas 是的,该链接适用于 Linux 和 MacOSX,但更准确地说,它适用于 g++ 和 clang++,您使用的是哪个编译器和编译器版本?
    • g++ (GCC) 4.93(这对我来说似乎是最新的)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多