c - 为 Automake 文件中的一个程序设置预处理器指令

标签 c makefile c-preprocessor automake

假设我们有一个源文件“a.c”。

“a.c”源文件用于构建程序“Prog1”、“Prog2”和“Prog3”。

"Prog1" also uses source file "x.c"
"Prog2" uses source file "y.c"
"Prog3" uses source file "z.c"

假设“a.c”使用一个名为“foo()”的函数,该函数仅在“x.c”中定义。因此,“Prog1”会被构建,但“Prog2”和“Prog3”不会编译。

还假设“a.c”在构建程序 Prog1 时需要调用函数 bar1(),在构建程序 Prog2 时需要调用 bar2(),在构建程序 Prog3 时需要调用 bar3()。

我们应该如何创建 automake Makefile.am 来支持它?

在 automake 文件“Makefile.am”中构建每个程序时,我一直在尝试指定不同的预处理器指令,但到目前为止还看不到它是如何完成的。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

最简单的解决方案?为三个不同的目标文件创建三个不同的规则,这些文件都是从 a.c 源文件构建的。

然后每个规则都可以轻松添加特定构建所需的额外标志。

关于c - 为 Automake 文件中的一个程序设置预处理器指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859055/

相关文章:

c - 没有编译错误、结构和二维数组问题,而且我从未到达第二个打印语句?

c - 我的 Assembly 实现中的段错误

c++ - 在单元测试文件 : 的 Makefile 中包含 gtest 库

c - Makefile 不会在 header 修改时重建对象

gcc - 检查 Makefile 中的 gcc 版本?

c++ - bool 运算符可以与预处理器一起使用吗?

无法解决 c 中的段错误(核心已转储)

在c中将字符串转换为时间格式

c - "error: expected identifier or ‘(’ 数字常量之前”–?

c - 个人预处理器指令