在不同的linux中make会有什么不同吗?

时间:2017-11-17 20:43:51

标签: linux ubuntu makefile ubuntu-14.04 ubuntu-16.04

我有一个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}

1 个答案:

答案 0 :(得分:0)

你的Makefile用低劣的本土货物邪教猜测取代了make的内置默认规则。 Make确切知道如何使用编译器的正确标志和选项编译C文件;不要试图超越它,特别是如果你不熟悉编译器。 (所以,本身不是一个make问题;但是让make使用它的默认值会修复你不正确的编译器调用。)