我有一个由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
或等效的动态库?
libtool --mode=execute
即可。对于 gdb,这意味着:libtool --mode=execute gdb runtests
。就这么简单。 - jørgensenlibtool --mode=execute gdb runtests
并得到了libtool: unknown option character '-' in: --mode=execute
的错误提示。我在 Mac OS 上使用的是i686-apple-darwin10-gcc-4.2.1
和 autotools 2.61。 - brandizzi