共有ライブラリのテスト プログラムをビルドするために使用しようとしている Autogen Makefile.am があります。テスト バイナリをビルドするために、引き続き共有ライブラリをターゲットとしてビルドしたいのですが、テスト プログラムを静的にリンクしたいと考えています。これを行うために Makefile.am を作成するために、ここ数時間費やしました。
ライブラリの .a バージョンを使用するように LDADD 行を明示的に変更しようとしましたが、このライブラリがビルドされていることがわかりますが、ファイルが見つかりませんというエラーが発生します。
LDFLAGS を介して .libs ディレクトリをリンク パスに追加しようとしましたが、まだ見つかりません。
ライブラリ ソースをテスト SOURCES リストに移動しようとしましたが、実行可能オブジェクト ファイルが静的ライブラリのものとは異なる方法で構築されているため、これは機能しません。
.a バージョンの lib_LIBRARIES エントリを複製して (lib_LTLIBRARIES と lib_LIBRARIES の両方がある)、共有バージョンのすべての LDFLAGS、SOURCES、dir、および HEADERS を静的バージョンの一部として複製しようとしました ( laをaに置き換えます)。 form _a_SOURCES = _la_SOURCES. それでも、何をビルドするかを判断できないため、これは機能しません。
私のconfigure.acファイルは、静的ライブラリと動的ライブラリの両方を提供するデフォルトのLT_INITを使用しています.libtoolが.aファイルを認識できない場合でも、両方を構築しているようです。
お願いします、誰かこれを行う方法を知っていますか?