github - 为什么 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不会发生这种情况
解决方案
发生这种情况的原因是 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
和你应该设置。
推荐阅读
- postgresql - 由于新的缺失/不满足的依赖关系,wildfly 无法启动
- sql - SQL Server 中比较所需的逻辑
- c# - WiX Toolset PermissionEx 问题 - 安装后应用程序无法运行
- javascript - $.when 的问题
- rust - Rust 赋值前的参考
- c# - Azure DevOps - .NET Core 构建包含 Web.config 文件
- node.js - 如何使用 Firebase 云功能发送自定义电子邮件
- c# - 使用 JavaScript 的 MVC 视图用户控件。如何实现弹出?
- debugging - 使用 GDB 调试汇编代码问题
- swift - 日期格式模板中区域设置的首选小时格式