如何强制测试程序链接到libtool构建的静态库

时间:2011-12-22 02:29:12

标签: c autotools static-linking libtool

我有一个由autotools管理的库。我在Makefile.am中有以下行,以及其他必要的配置

lib_LTLIBRARIES = libstuff.la

我的项目还构建了一个程序来运行一些测试套件。该程序配置如下:

noinst_PROGRAMS = runtests
runtests_SOURCES = test/stuff.c stuff.h
runtests_LDADD = libstuff.la

但是,程序始终链接到libstuff.la的动态版本,这使某些情况变得复杂(例如,使用gdb进行调试)。如何强制将程序与libstuff.a而不是libstuff.so或等效的动态库相关联?

1 个答案:

答案 0 :(得分:8)

执行此操作的正确方法是将-static标记添加到LDFLAGS变量。 对于所有目标:AM_LDFLAGS = -static

或专门针对测试计划:runtests_LDFLAGS = -static