7

libtool化されたものではなく、automakeに標準の共有ライブラリを作成させるにはどうすればよいですか? 通常、abc.soフル パスで参照され、メイン プログラムに読み込まれる を作成します。AMに同じことを強制する方法はありますか? _LIBRARY としてリストすると、automake は次のように文句を言います。'abc.so' is not a standard library name; did you mean 'libabc.a'

明確にするために:はい、.soサポートのみが必要です-静的ではありません。はい、カスタム ファイル名が必要です。

4

4 に答える 4

7

libtoolがその方法です。カスタム名が必要な場合は、次のように-moduleオプションを _LDFLAGS に追加します。

plugindir= /some/where  
plugin_LTLIBRARIES= abc.la
abc_la_LDFLAGS= -module
于 2011-06-19T18:28:54.703 に答える
6

Automakeは、移植可能な方法がないため、共有ライブラリを構築する方法を知りません。Automakeとの共有ライブラリが必要な場合は、Automake+Libtoolを使用する必要があります。デフォルトで静的ライブラリ(LT_INIT([disable-static])内に)を構築しないようにlibtoolを簡単に構成できることに注意してください。configure.ac

于 2010-01-18T10:31:43.040 に答える
1

libtoolized ライブラリは、1 つ以上の標準ライブラリのラッパーです。これらのライブラリは、「make」を実行すると「.libs」に、または「make install」を実行すると「$prefix/lib」にあります。

Linux マシンでは、最終的に「libabc.so」というファイルが見つかるはずです。

于 2010-01-20T14:03:26.710 に答える
0

IIRC では、libltdl に対してリンクしない限り、libtool を使用して作成されたライブラリについて特別なことは何もありません。libtool を使用したくない場合、選択する力があり、移植性についてあまり気にしない場合は、libtool なしで automake を自由に使用できます。代わりに libtool の機能を使用することをお勧めします。

実際、私は _LIBRARY が何に適しているのかさえ知りません。マニュアル/リンクセクションで見つけられませんでした。

于 2010-01-18T02:27:12.047 に答える