我有一個由autotools管理的庫。我在Makefile.am
以下線路,以及其他必要的配置如何強制測試程序鏈接到由libtool構建的靜態庫
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 =執行gdb runtests'。就那麼簡單。 – 2011-12-22 03:07:37
@jørgensen這似乎是一個很好的解決方案,但沒有在這裏工作。我運行了'libtool --mode = execute gdb runtests'並得到了 'libtool:未知選項字符' - 'in:--mode = execute'。在Mac OS和autotools中使用'i686-apple-darwin10-gcc-4.2.1' 2.61。 – brandizzi 2011-12-22 03:25:56