【发布时间】:2015-03-28 23:18:00
【问题描述】:
我使用 makefile 编译我的项目,该文件的表达式为
g++ -c a.cpp b.cpp c.cpp
有没有简单的方法来定义一个会增加每个文件的宏? (例如 a 0、b 1、c 2)
不用说,但项目由无数文件组成,并且数量会发生变化,因此硬编码任何内容都是不可能的。
【问题讨论】:
-
“增加每个文件”是什么意思?您是否需要一个计数器来计算您传递的文件,或者一种从“a.cpp”开始并自动以“z.cpp”结尾的方法,或者其他什么?
-
另外,命令
g++ a.cpp b.cpp c.cpp不是有效的编译器命令。如果您需要帮助,请具体说明:您真正运行什么?如果您确实对所有源文件调用了单个编译器调用,那么 make 将无法帮助您计算它们,因为 make 调用一个命令来构建它们;它怎么能算什么? -
好吧,我实际上运行 g++ -C (files),它编译源文件但不链接它们。关键是要有一个整数宏,它对于每个目标文件都是唯一的。
-
这个宏必须适用于您传递给它的任何个文件名,还是可以限制为文件名列表?
-
它必须适用于任何文件名列表。虽然我用一些 makefile 黑魔法解决了