2015-04-06 80 views
0

如何将一个autotools项目的test子目录中的可执行文件与一个库(称为libfoo)链接起来,该库只从同一项目的src目录中的文件构建?如何在autotools项目中链接建立的库

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 

测试/ Makefile.am:

ACLCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 
check_PROGRAMS = footest 
footest_SOURCES = \ 
    main.cpp 
footest_LDADD = ????? 

回答

1

这很简单:footest_LDADD = ../src/libfoo.la

这适用于' out-of-tree“构建,例如,如果从另一个目录(而不是./configure)调用configure

+0

叶,但看起来很粗糙。顺便提一下,我对相对路径感觉不太好。 – 2015-04-06 09:02:58

+2

@ sorush -r - 如果它让你更舒服,你也可以使用'builddir'和/或'top_builddir'变量。 – 2015-04-07 01:17:37

相关问题