我有一个由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
或等效的动态库相关联?
答案 0 :(得分:8)
执行此操作的正确方法是将-static
标记添加到LDFLAGS
变量。
对于所有目标:AM_LDFLAGS = -static
或专门针对测试计划:runtests_LDFLAGS = -static