【发布时间】:2014-10-23 09:55:02
【问题描述】:
据我所知,更改 cmake 使用的目标 C++ 编译器的最佳方法是在调用 cmake 之前更改 CXX 环境变量:
$ export CXX="clang++" && cmake --build
Travis CI 构建会根据构建的设置设置 CXX 和 CC。因此,如果您的 .travis.yml 中有此内容:
language: cpp
compiler:
- gcc
- clang
script:
- cmake --build
- ./bin/foo
cmake 第一次应该在后者上使用 GCC 和 Clang 不是吗?
相反,GCC 构建编译得很好(它是 cmake 使用的默认编译器),但 Clang 版本也使用 GCC:
0.01s$ echo $CC $CXX
叮当++
命令“echo $CC $CXX”以 0 退出。0.02s$ $CXX --version
clang version 3.4 (tags/RELEASE_34/final) 目标:x86_64-unknown-linux-gnu 线程模型:posix运行:cmake -G "Unix Makefiles" -Wno-dev ../cmake
-- C 编译器标识是 GNU
-- CXX 编译器标识为 GNU
-- 检查工作的 C 编译器:/usr/bin/gcc
-- 检查工作的 C 编译器:/usr/bin/gcc -- 工作
-- 检测 C 编译器 ABI 信息
-- 检测 C 编译器 ABI 信息 - 完成
-- 检查工作的 CXX 编译器:/usr/bin/c++
-- 检查工作的 CXX 编译器:/usr/bin/c++ -- 工作
-- 检测 CXX 编译器 ABI 信息
-- 检测 CXX 编译器 ABI 信息 - 完成
我什至尝试在通话前再次设置这些变量:
- if [ "$CXX" == "clang++" ]; then export CXX="clang++" && cmake --build; fi
- if [ "$CXX" == "g++" ]; then export CXX="g++" && cmake --build; fi
我觉得这没什么意义……
Here 是使用 GCC 成功构建,here 是(应该是)clang 构建。
我的问题是:如何更改 Travis CI 下 cmake 使用的编译器?
Here 是我的 .travis.yml。
【问题讨论】:
-
@ruslo 但不起作用。如您所见here,cmake完全摆脱了
CXX的值,即clang++
标签: c++ cmake travis-ci biicode