【发布时间】:2016-05-02 14:13:00
【问题描述】:
我正在使用 Autotools 构建包含多个二进制文件的项目(带有命令行工具的 repo)。
如何将某些库链接到所有程序,而将其他库仅链接到特定程序?
示例:
我的 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 实现这一目标?
【问题讨论】:
-
您可能还会发现:
AM_DEFAULT_SOURCE_EXT = .cpp在这里很有用。 -
@BrettHale 谢谢。我的仓库中有很多程序,但只有一些程序使用的资源多于一个。我知道,如果我不指定
<name>_SOURCES,这将起作用,如果我这样做 - 它会覆盖,对吗?