首页 > 解决方案 > 为什么 Travis CI 的 xenial VM 发现 gcc 5 和 7,而不是 6?

问题描述

我试图让 Travis CI用这个文件构建这个 C 项目。它有效 - 几乎。由于某种原因,使用 GCC 6 构建失败,但不是因为项目本身,而是因为这发生在 VM 上:.travis.yml

$ export MATRIX_EVAL="export CC=gcc-6"
$ export TRAVIS_COMPILER=gcc
$ export CC=gcc
$ export CC_FOR_BUILD=gcc
$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
before_install
0.00s$ eval "${MATRIX_EVAL}"
0.14s$ cmake . && make
CMake Error at /usr/local/cmake-3.12.4/share/cmake-3.12/Modules/CMakeDetermineCCompiler.cmake:48 (message):
  Could not find compiler set in environment variable CC:
  gcc-6.
Call Stack (most recent call first):
  CMakeLists.txt:9 (project)

同样,GCC 5 和 GCC 6不会发生这种情况

标签: githubgcctravis-cisoftware-distribution

解决方案


发生这种情况的原因是 GCC 6 是 Ubuntu Xenial 发行版的默认版本。所以它不能作为版本名称二进制文件使用,也不需要下载任何包来使其可用。

只需更换:

- os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-6
      env:
- MATRIX_EVAL="export CC=gcc-6"

用,这样说:

- os: linux
      env:
- MATRIX_EVAL="echo GCC 6 will be used by default in xenial"

在你.travis.yml和你应该设置。


推荐阅读