2015-11-24 103 views
1

我有一些用CMake(3.x)構建的C++代碼,由於Boost library issue,我需要使用g ++ 4.x而不是5.x鏈接。我怎樣才能讓CMake找到GCC的非最新版本?

我的系統有/ usr/bin/g ++鏈接到/usr/bin/g++-5.2,還有/usr/bin/g++-4.9。顯然,我可以讓我的CMakeLists.txt手動選擇/usr/bin/g++-4.9作爲我的編譯器,但這意味着它會在另一個系統上崩潰......我如何讓CMake找到「g ++的版本> = 4但是< 5「?或者「最新版本的g ++仍然是< 5」?

回答

2

你不能用內置的機制來做到這一點。 CMake搜索,如果可行,它看起來不會更進一步。您可以檢查找到的編譯器的版本號,並在它不包含約束的情況下發出錯誤。 建議您的用戶(或自己使用)CMake變量CMAKE_C_COMPILERCMAKE_CXX_COMPILER來指示您要使用哪種編譯器。

+0

太糟糕了。謝謝。 – einpoklum