2014-06-19 30 views
0

我有一个OpenCV项目,它使用cmake生成它的makefiles。在cmake生成的项目中指定libstd

如果我做cmake . && make,它会保持报告链接错误。我想这是由于libstd的选择。 (我已经完成了一个编写helloworld opencv项目的实验,事实证明-libstd=libstdc++是编译成功的关键)。

如何将交换机-libstd=libstdc++添加到cmake项目中?

如果有帮助,我的系统是OSX 10.9和编译器clang-503.0.40

回答

0

SET(CMAKE_CXX_FLAGS "-stdlib=libstdc++")

+2

@MattDeacalionStevens虽然不是非常广泛,但这看起来像是一个完整的答案。这些不应该被编辑成问题。 – Sumurai8

0

对于CMake版本> = 2.8.12,可以使用target_compile_options以及generator expression

说出你的目标被称为MyExe,那么你可以做:

target_compile_options(MyExe PUBLIC $<$<BOOL:${APPLE}>:-stdlib=libstdc++>) 
+0

由于解决了这个问题,但我的CMake的版本是2.8.10。通过设置'CMAKE_CXX_FLAGS'来解决它# – onemach

相关问题