Clang版本混乱(OSX和Cmake)

时间:2016-05-25 11:50:55

标签: c++ macos cmake clang

我正在尝试锁定我使用的编译器版本(出于多种原因我不会进入)。为此,我想使用CMAKE_CXX_COMPILER_VERSIONCMAKE_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可靠吗?

1 个答案:

答案 0 :(得分:1)

结果显示CMake在CMakeFiles/3.5.0/CmakeCXXCompiler.cmake(版本3.5.0)中设置编译器版本。只有删除此文件并重新构建才能报告正确的编译器版本(假设您在某个时刻安装了不同的编译器版本)。