2014-06-19 53 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

相關問題