我正在尝试锁定我使用的编译器版本(出于多种原因我不会进入)。为此,我想使用CMAKE_CXX_COMPILER_VERSION
和CMAKE_CXX_COMPILER_VERSION
检查构建版本的编译器。
在OSX CMake上报道:
CMAKE_CXX_COMPILER_VERSION 7.0.2.7000181
CMAKE_CXX_COMPILER_ID Clang
CMAKE_CXX_COMPILER /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
但是,通过终端报告的版本是:
Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
这是真的:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ --version
clang --version
gcc --version
g++ --version
为什么CMake和命令行报告的版本号差异(对于同一个可执行文件)?
为了限制特定的编译器版本,CMAKE_CXX_COMPILER_VERSION
可靠吗?
答案 0 :(得分:1)
结果显示CMake在CMakeFiles/3.5.0/CmakeCXXCompiler.cmake
(版本3.5.0)中设置编译器版本。只有删除此文件并重新构建才能报告正确的编译器版本(假设您在某个时刻安装了不同的编译器版本)。