是否可以在一个makefile中创建两个文件?基本上是program
和programtest
。我已经看到了其他答案,但他们的语法完全超出了我的想法。现在我的Makefile只生成其中一个程序,我无法弄清楚如何让它们同时生成
有人可以提供一个模板来说明如何构建Makefile来编译两个程序吗?
答案 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个目标为main1
和main2
的情况。
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