我将单元测试放在源代码的同一目录中。但是我如何在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 中可以找到类似的示例。