自动连接多个程序

时间:2016-05-02 14:13:01

标签: build automake

我正在使用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实现这一目标?

1 个答案:

答案 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