我正在使用Autotools来构建包含多个二进制文件的项目(使用命令行工具进行回购)。
如何将某些库链接到所有程序,将某些其他库仅链接到特定程序?
例:
我的Makefile.am:
bin_PROGRAMS= prog1 prog2
prog1_SOURCES=prog1.cpp
prog2_SOURCES=prog2.cpp
prog1_LDADD= -llib-only-for-prog1
LDADD=-llib-for-all-projects # this does not work
#AM_LDFLAGS=-llib-for-all-projects # this does not work either
#LINK=-llib-for-all-projects # this does not work either
我希望prog1
与-llib-only-for-prog1
和-llib-for-all-projects
联系prog2
- 仅针对-llib-for-all-projects
。
如何使用autotools实现这一目标?
答案 0 :(得分:2)
基本上,如果您为特定程序LDADD
添加prog1_LDADD
,则会忽略常见的LDADD
选项。
以下适用于我:
bin_PROGRAMS=prog1 prog2 prog3
prog1_SOURCES=prog1.c
prog2_SOURCES=prog2.c
prog3_SOURCES=prog3.c
LDADD=-llib-for-all-projects
prog1_LDADD=-llib-only-for-prog1 $(LDADD)
请注意$(LDADD
行中的额外prog1_LDADD
。