4

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

4

1 に答える 1

9

これを行う正しい方法は、変数に-staticフラグを追加することです。LDFLAGSすべてのターゲットの場合:AM_LDFLAGS = -static

または、特にテストプログラムの場合:runtests_LDFLAGS = -static

于 2011-12-22T15:49:13.460 に答える