2015-04-06 81 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

相關問題