Makefile 如何在autotools项目中链接到刚构建的库

Makefile 如何在autotools项目中链接到刚构建的库,makefile,autotools,automake,Makefile,Autotools,Automake,如何将autotools项目的saytest子目录中的可执行文件与库(例如libfoo)相链接,该库是从同一项目的src目录中的文件构建的 Makefile.am看起来像: SUBDIRS = src . test AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 src/Makefile.am: ACLCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 lib_LTLIB

如何将autotools项目的say
test
子目录中的可执行文件与库(例如libfoo)相链接,该库是从同一项目的
src
目录中的文件构建的

Makefile.am看起来像:

SUBDIRS = src . test
AUTOMAKE_OPTIONS = subdir-objects
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
src/Makefile.am:

ACLCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = \
    foo.cpp
foo_includedir = $(includedir)/foo
foo_include_HEADERS = \
    foo.hpp
ACLCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
check_PROGRAMS = footest
footest_SOURCES = \
    main.cpp
footest_LDADD = ?????
test/Makefile.am:

ACLCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = \
    foo.cpp
foo_includedir = $(includedir)/foo
foo_include_HEADERS = \
    foo.hpp
ACLCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
check_PROGRAMS = footest
footest_SOURCES = \
    main.cpp
footest_LDADD = ?????

这很简单:
footest\u LDADD=../src/libfoo.la


这适用于“树外”构建,例如,如果您从另一个目录(不是
/configure
)调用
configure

是的,但看起来很糟糕。顺便说一句,我对相对路径感觉不太好。@sorush-r-如果让您更舒服的话,您也可以使用
builddir
和/或
top\u builddir
变量。