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

最佳答案

除非所有变量都被LDADD覆盖,否则target_LDADD的内容将用于所有目标。因此,如果您有许多单元测试,而只有几个实际程序,则可以将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 ojit_code 中可以找到类似的示例。

09-06 09:58