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

bra*_*zzi 4 c autotools libtool static-linking

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

lib_LTLIBRARIES = libstuff.la
Run Code Online (Sandbox Code Playgroud)

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

noinst_PROGRAMS = runtests
runtests_SOURCES = test/stuff.c stuff.h
runtests_LDADD = libstuff.la
Run Code Online (Sandbox Code Playgroud)

但是,程序始终链接到动态版本libstuff.la,这会使某些情况复杂化(例如,调试gdb).我怎么能强制程序链接libstuff.a而不是libstuff.so等效的动态库?

Bre*_*ale 8

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

或者专门用于测试程序: runtests_LDFLAGS = -static