Clang 版本混淆(OSX 和 Cmake)
Clang version confusion (OSX and Cmake)
我正在尝试锁定我使用的编译器版本(出于多种原因,我不会深入)。为此,我想使用 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
可靠吗?
原来 CMake 在 CMakeFiles/3.5.0/CmakeCXXCompiler.cmake
中设置编译器版本(对于版本 3.5.0)。只有删除此文件并重新生成,才会报告正确的编译器版本(假设您在某个时候安装了不同的编译器版本)。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用CMake创建QML插件
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- 找不到cmake和osx框架
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- Cmake Mac OSX库链接问题:在Linux上进行编译,但在Mac上进行了编译
- 如何将库与CMAKE一起包含在OSX捆绑包中
- 如何让 CMAKE 在 OSX 上找到特定版本的 lib curl?
- Clang 版本混淆(OSX 和 Cmake)
- OSX 优胜美地 10.10.3 上的 Cmake - GLEW:未找到包'gl'
- CMake OSX命令行与GUI的差异
- 如何使用 cmake 在 OSX 上编译 glfw
- OSX 10.10 CMake 3.0.2 和 clang 找不到本地标头
- CMAKE为dylib创建OSX捆绑包
- 如何在Mac OSX上编译OpenCV+CUDA(我尝试了cmake和makefile)
- 在OSX上使用CMake构建Unity原生捆绑包
- Cmake ROS失败:Mac OSX部署目标不匹配
- CMake和Boost在OSX上-没有规则的目标