makefile.am 可以为一组目标设置 LDADD 吗?

Posted

技术标签:

【中文标题】makefile.am 可以为一组目标设置 LDADD 吗?【英文标题】:Can makefile.am set LDADD for a set of target? 【发布时间】:2011-07-13 00:56:22 【问题描述】:

我将单元测试放在源代码的同一目录中。但是如何在 Makefile.am 中为所有这些单元测试设置 LDADD 以使用特定的库(例如 google test)?

【问题讨论】:

【参考方案1】:

LDADD 的内容用于所有目标,除非此变量被 target_LDADD 覆盖。因此,如果您有很多单元测试,而实际程序很少,您可以使用LDADD 进行单元测试,并为每个具有不同链接要求的程序覆盖它。

LDADD = libtest.a   # Used by default for all targets

# Unit tests, using above LDADD
check_PROGRAMS = one two three
one_SOURCES = one.c
two_SOURCES = two.c
three_SOURCES = three.c

# Main program
bin_PROGRAMS = main
main_SOURCES = main.c
main_LDADD =        # Override the LDADD setting.

类似的例子可以在the documentation of LDADD中找到。

【讨论】:

以上是关于makefile.am 可以为一组目标设置 LDADD 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何影响目标的顺序,为 Makefile.am 添加额外的步骤等?

关于Makefile.am中与Build相关的变量设置 AM_CPPFLAGS

添加条件目标以自动生成所有并安装目标

Makefile.am文件配置

Latent Dirichlet Allocation(隐狄利克雷分配模型)——论文翻译与分析

在 Makefile 中有几乎重复的目标规则的后果是啥?