gpt4 book ai didi

gcc - 在 travis CI 上运行 Makefile 时找不到获取 gcc 命令

转载 作者:行者123 更新时间:2023-12-03 00:08:29 26 4
gpt4 key购买 nike

我在 github 上有一个 C 项目,我正在尝试在 Travis-CI 中构建代码,但出现此错误:

Using worker: worker-linux-9-2.bb.travis-ci.org:travis-linux-2
$ export CC=gcc
git.1
$ git clone --depth=50 --branch=someDevs git://github.com/luizfilipe/ffb-cglib.git luizfilipe/ffb-cglib
Cloning into 'luizfilipe/ffb-cglib'...
remote: Counting objects: 114, done.
remote: Compressing objects: 100% (93/93), done.
remote: Total 114 (delta 27), reused 80 (delta 12)
Receiving objects: 100% (114/114), 2.53 MiB | 0 bytes/s, done.
Resolving deltas: 100% (27/27), done.
Checking connectivity... done.
$ cd luizfilipe/ffb-cglib
git.3
$ git checkout -qf f76cd622418a75003d1aa6326c38039c1f556ee8
$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 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.
$ make
gcc -c -pendantic examples/environment/main.c -I/usr/bin/Mesa-5.0/include -g
make: gcc: Command not found
make: *** [main.o] Error 127
The command "make" exited with 2.
Done. Your build exited with 1.

阅读错误后,我注意到未找到 gcc,但 .travis.yml 的配置如下:

language: c
compiler:
- gcc
script: make

Makefile 配置如下:

# Variables
MESA = /usr/bin/Mesa-5.0
PATH = examples/environment/main
EXAMPLE_ENVIRONMENT = examples/environment/main.c
INCPATH = -I$(MESA)/include
LIBPATH = -L$(MESA)/lib
LIBS = -lglut -lGLU -lGL -lm
CFLAGS = $(INCPATH) -g
LFLAGS = $(LIBPATH) $(LIBS)

# Main targets
all: main.o
$(CC) -o $(PATH) main.o $(LFLAGS)

# Source targets
main.o: $(EXAMPLE_ENVIRONMENT)
$(CC) -c -pendantic $(EXAMPLE_ENVIRONMENT) $(CFLAGS)

有什么想法吗?

更新:我刚刚切断了 clang 并使 Makefile 更加不可知,但我仍然遇到同样的问题。

最佳答案

问题在于您对编译器进行了硬编码,然后要求 travis 针对两个编译器进行构建。这意味着 travis 将尝试使用 gcc 构建您的代码,然后再次使用 clang 构建您的代码。您有两种选择:从 .travis.yml 中删除 clang 作为编译器,或者将 makefile 更改为与编译器无关。要更改 makefile,只需将 gcc 的所有实例替换为 $(CC)

此外,$PATH 还包含查找可执行文件的位置。如果你覆盖它,就会找不到任何东西。所以你需要将 $PATH 重命名为 example_path例如

# Variables
MESA = /usr/bin/Mesa-5.0
example_path = examples/environment/
EXAMPLE_ENVIRONMENT = examples/environment/main.c
INCPATH = -I$(MESA)/include
LIBPATH = -L$(MESA)/lib
LIBS = -lglut -lGLU -lGL -lm
CFLAGS = $(INCPATH) -g
LFLAGS = $(LIBPATH) $(LIBS)

# Main targets
all: main.o
$(CC) -o $(example_path)/main.o $(LFLAGS)

# Source targets
main.o: $(EXAMPLE_ENVIRONMENT)
$(CC) -c -pendantic $(EXAMPLE_ENVIRONMENT) $(CFLAGS)

您还需要在 .travis.yml 文件中添加 before_install 部分来安装 Mesa,因为 travis 镜像非常少。

关于gcc - 在 travis CI 上运行 Makefile 时找不到获取 gcc 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21801197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com