我有一个OpenCV项目,它使用cmake生成makefile。
如果我执行cmake . && make
,则会保持报告链接错误。我认为这是由于libstd
的选择。 (我已经做了一个编写helloworld opencv项目的实验,事实证明-libstd=libstdc++
是编译成功的关键。)
如何在cmake prject中添加开关-libstd=libstdc++
?
如果它有用,我的系统是OSX 10.9
和编译器clang-503.0.40
。
答案 0 :(得分:0)
对于CMake版本> = 2.8.12,您可以使用target_compile_options
和generator expression。
假设你的目标被称为MyExe
,那么你可以这样做:
target_compile_options(MyExe PUBLIC $<$<BOOL:${APPLE}>:-stdlib=libstdc++>)
答案 1 :(得分:0)
用SET(CMAKE_CXX_FLAGS "-stdlib=libstdc++")