在 Makefile.am、configure.ac 和源代码中应该出现什么来将库链接到带有 Autotools 的程序?
我的(目前微不足道的)项目配置、构建和运行正常,但我想整理一下。
我目前有configure.ac:
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(foo, 1.0)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE()
AC_PROG_CC
AC_CONFIG_FILES(Makefile src/Makefile)
AC_OUTPUT
PKG_CHECK_MODULES([DEPS], [apr-1 >= 1.4.2])
Makefile.am(在 src/中):
bin_PROGRAMS=a.out
a_out_SOURCES=foo.c
a_out_LDADD = /usr/lib/libapr-1.so
和 foo.c:
...
#include <apr-1.0/apr_general.h>
#include <apr-1.0/apr_pools.h>
...
我想摆脱 Makefile.am 中/usr/lib/libapr-1.so 的硬编码路径和 foo.c 中的相关 #include 路径。我假设 PKG_CHECK_MODULES 可以找到并告诉我与 libapr 关联的文件的位置。
我应该如何修改这些文件才能使其正常工作?
谢谢,
克里斯。
最佳答案
看看这个 tutorial .
有趣的是,如果您这样定义 pkg 检查:
PKG_CHECK_MODULES([APR], [apr-1 >= 1.4.2])
然后您可以在 Makefile.am 中使用它:
project_name_LDADD = $(APR_LIBS)
关于c - Makefile.am 中应该出现什么以及将库链接到带有 Autotools 的程序的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160009/