Почему xenial VM Travis CI находит gcc 5 и 7, но не 6?

Я пытаюсь заставить Travis CI собрать этот проект C с этот .travis.yml файл. Работает - почти. Почему-то не получается собрать с GCC 6, но не из-за самого проекта, а из-за того, что это происходит на ВМ:

$ 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


person einpoklum    schedule 11.02.2019    source источник


Ответы (1)


Причина, по которой это происходит, заключается в том, что 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 и вы должны быть установлены.

person einpoklum    schedule 11.02.2019