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等效的动态库?
正确的方法是将-static标志添加到LDFLAGS变量中.对于所有目标:AM_LDFLAGS = -static
或者专门用于测试程序: runtests_LDFLAGS = -static