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.01秒$ echo $CC $CXX
clang clang++
命令“echo $CC $CXX”退出并带有0。0.02秒$ $CXX --version
Clang版本3.4(标签/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
我觉得这没有太多意义...
这里是使用GCC成功构建的链接,这里是(应该是)clang构建的链接。
我的问题是:我如何在Travis CI下更改cmake使用的编译器?
这里是我的.travis.yml文件。
CXX
的值中去除了clang ++
。 - Manu343726