在TravisCI下更改Cmake的C ++编译器

Manu343726

据我所知,更改cmake使用的目标C ++编译器的最佳方法是CXX在调用cmake之前更改环境变量:

$ export CXX="clang++" && cmake --build

特拉维斯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
clang clang ++
命令“ echo $ CC $ CXX”以0退出。

0.02s $ $ CXX-版本
clang版本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

我认为这没有多大意义...

是使用GCC的成功构建,这里是(应该是)lang构建。

我的问题是:如何在Travis CI下更改cmake使用的编译器?

是我的.travis.yml。

合身

解释

在您.travis.yml看来,

- if [ "$CXX" == "clang++" ]; then export CXX="clang++" && bii cpp:build; fi
- if [ "$CXX" == "g++" ];     then export CXX="g++"     && bii cpp:build; fi

biicode的命令bii cpp:build使用UNIX平台(GNU工具链)biicode的默认生成器运行CMake "Unix Makefiles"详细了解:Biicode C ++文档-生成器和IDE

在您的日志中可以看到此行为:Running: cmake -G "Unix Makefiles" -Wno-dev ../cmakehttps://travis-ci.org/Manu343726/Turbo/jobs/33889114,第257行)

CMake并不总是寻找环境变量CXX/CC(如CMake FAQ中所述)。这取决于所选的发电机。当我不使用生成器调用CMake时,它对我有用(我的travis文件:https : //github.com/quepas/Graph-ene/blob/master/.travis.yml)。

解决方案

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章