4

我有一个由 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或等效的动态库?

4

1 回答 1

9

正确的做法是将-static标志添加到LDFLAGS变量中。对于所有目标:AM_LDFLAGS = -static

或者专门针对测试程序:runtests_LDFLAGS = -static

于 2011-12-22T15:49:13.460 回答