我正在尝试调试使用std :: map的C ++程序 在这篇文章http://blog.jetbrains.com/clion/2015/05/debug-clion/中,如果在CMake文件中包含-stdlib = libstdc ++,它表示它们支持GNU STL Renderers,但是在构建时出现错误。
c++: error: unrecognized command line option '--stdlib=libstdc++'
这是我的CMake文件
cmake_minimum_required(VERSION 3.3)
项目(皮棉)
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 Renderers像他们的公告一样工作?
答案 0 :(得分:1)
删除这个额外的短划线:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -stdlib=libstdc++")
// ^^^
命令行中的一个破折号很长!
另外,仔细查看链接的文章:
此功能适用于GCC,对于Clang,它仅适用于libstdc ++。
根据我的结论,使用g ++,无需附加此选项,渲染器应该开箱即用。
编辑:强制性的SO question link。