【问题标题】:How to link against just built libraries in autotools project如何在 autotools 项目中链接刚刚构建的库
【发布时间】:2015-04-06 08:42:41
【问题描述】:

如何将 autotools 项目的 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

测试/Makefile.am:

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

【问题讨论】:

    标签: makefile autotools automake


    【解决方案1】:

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

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

    【讨论】:

    • 是的,但看起来很恶心。顺便说一句,我对相对路径感觉不太好。
    • @sorush-r - 你也可以使用builddir 和/或top_builddir 变量,如果它让你更舒服的话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多