【问题标题】:How to compile many projects in one makefile如何在一个makefile中编译多个项目
【发布时间】:2020-06-23 03:42:11
【问题描述】:

简单的问题,但我在网上找不到任何完整的答案。

我有 3 个项目,我想要的结果是我运行 make 并且所有 3 个程序都转换为可执行文件。

gcc -o server server.c
gcc -o server2 server2.c
gcc -o server3 server3.c

这可以实现吗?怎么样?

【问题讨论】:

  • @Bogota 谢谢,但这些示例都没有在一个 makefile 中引用 3 个单独的项目。
  • 如果您知道如何编写构建一个目标的 makefile,只需执行 3 次:每个目标一个,在同一个文件中。然后在文件的开头添加一个依赖于所有这些的规则,例如:all: server server2 server3.
  • @MadScientist 你想发表你的评论作为答案吗?它成功了。

标签: c gcc makefile


【解决方案1】:

感谢 @MadScientist 在 cmets 中回答我的问题。我希望我能给他这个答案的代表。

对我有用的 Makefile 是

.PHONY: all server server2 server3
all: server server2 server3


server: server.c
    gcc -o server server.c 
server2: server2.c
    gcc -o server2 server2.c 
server3: server3.c
    gcc -o server3 server3.c 

Makefile创建完成后,在命令行输入make,执行3条gcc命令。

默认情况下,make 将调用 make all,它在排序上将调用服务器、服务器 2、服务器 3,如在此行中定义的 all: server server2 server3

我仍然不确定.PHONY 是什么意思。

【讨论】:

  • 你应该使用.PHONY: all而不是其他人。如果你不确定某事是做什么的,最好不要包括它:)。手册是你的朋友:gnu.org/software/make/manual/html_node/Phony-Targets.html
  • @MadScientist 你能解释一下为什么吗?
  • 如果您阅读了上面的文档链接并对您不理解的内容有具体问题,我很乐意为您解答。但是,我不想只是重申文档中的内容。
猜你喜欢
  • 2019-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多