makefile - 如何链接到 autotools 项目中刚刚构建的库

标签 makefile autotools automake

如何将 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 = ?????

最佳答案

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

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

关于makefile - 如何链接到 autotools 项目中刚刚构建的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29467967/

相关文章:

autoconf - 加速大型项目的自动配置/配置

c++ - 写一个makefile把一个.h .hpp和.cpp一起编译成可执行文件

makefile - Makefile ifeq:何时评估?

c++ - 在 Ubuntu 上编写的 C++ 软件中的僵尸窗口

c - 将共享库链接到静态库

c++ - 如何在运行时摆脱 LD_LIBRARY_PATH?

linux - 通过工具链使用 automake 和 configure

c - 使用 libfreenect 编译代码时出现链接器错误

makefile - 使用 autotools 仅构建一小部分项目

java - JNI 和 Java : ant calling make or make calling ant?