在一个makefile中创建两个c程序

时间:2017-05-05 03:13:13

标签: c unix gcc makefile

是否可以在一个makefile中创建两个文件?基本上是programprogramtest。我已经看到了其他答案,但他们的语法完全超出了我的想法。现在我的Makefile只生成其中一个程序,我无法弄清楚如何让它们同时生成

有人可以提供一个模板来说明如何构建Makefile来编译两个程序吗?

3 个答案:

答案 0 :(得分:1)

你可以在一个makefile中有多个exes,这里是构建2的示例, 你需要做所有的建设

prog1: prog1.o
    gcc prog1.o -o prog1 2>>compile.log 1>&2

prog2: prog2.o
    gcc prog2.o -o prog2 2>>compile.log 1>&2

all: prog1 prog2

.c.o:
    gcc -o $@ -c $*.c 2>>compile.log 1>&2

答案 1 :(得分:1)

以下是2个目标为main1main2的情况。

TARGET1 = main1
TARGET2 = main2

$(TARGET1): main1.o
    gcc main1.o -o $@

$(TARGET2): main2.o
    gcc main2.o -o $@

%.o: %.c
    gcc -c $< -o $@

run1: $(TARGET1)
    ./$(TARGET1)

run2: $(TARGET2)
    ./$(TARGET2)

all: $(TARGET1) $(TARGET2)
    ./$(TARGET1)
    ./$(TARGET2) 

请记住,缩进是<tab>字符,而不是空格字符。

以下命令将编译并运行main1可执行文件。

make run1

以下命令将编译并运行main2可执行文件。

make run2

以下命令将编译并运行main1可执行文件,后跟main2可执行文件。

make all

答案 2 :(得分:0)

有可能。 这是一个更简单的Makefile版本:

all: program programtest

program:
    gcc -o program program.c

programtest:
    gcc -o programtest programtest.c

然后您只需输入make

$ make
gcc -o program program.c
gcc -o programtest programtest.c