我有一个make文件在这个版本的Linux上运行得很好。然而 为什么它不会在另一个版本上运行...
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
codename : trusty
就在这里......它不会在这个上运行吗?为什么呢?
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
我在xenial上出现此错误...为什么?
Ubuntu mate $:make
gcc: error: missing filename after ‘-o’
gcc: fatal error: no input files
compilation terminated.
这是我的make文件(更新,上一篇文章没有这个)
CFLAGS = gcc -g
OBJ = dummyDriverX1.o x1.o error.o
# Automatic substitution using suffix rules to
%.o: %.c
${CFLAGS} -c $<
%.o: %.cpp
${CFLAGS} -c $<
# Building x1 based on the required .o files
pell: ${OBJ}
${CFLAGS} -o pell ${OBJ}
clean:
rm ${OBJ}
答案 0 :(得分:0)
你的Makefile用低劣的本土货物邪教猜测取代了make的内置默认规则。 Make确切知道如何使用编译器的正确标志和选项编译C文件;不要试图超越它,特别是如果你不熟悉编译器。 (所以,本身不是一个make问题;但是让make使用它的默认值会修复你不正确的编译器调用。)