我有以下Makefile编译,创建可执行文件然后执行它。
CC=gcc
CFLAGS=-I.
DEPS = hellomake.h
OBJ = hellomake.o hellofunc.o
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
hellomake: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS)
./hellomake
它在我的本地计算机上完美运行,当它在Travis中构建时,会出现以下错误。
gcc -o hellomake hellomake.o hellofunc.o -I.
hellomake.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make: *** [hellomake] Error 1
答案 0 :(得分:1)
您的hellofunc.o
来自其他系统(请尝试file hellofunc.o
)。删除它,然后重新编译它。
您是否正在进行交叉编译?您是否在不同的计算机上安装了主目录?也许在其他架构上解包由其他人制作的档案?