:libtool:私のモジュールへのパスは何ですか?私はautotoolsの+ libtoolのプロジェクトからモジュールを作成してい
今#the module:
lib_LTLIBRARIES = mmmm.la
mmmm_la_SOURCES = mmmm.c
mmmm_la_LDFLAGS = $(AM_LDFLAGS) -module -shared
を次のように Makefile.amに見える、私は私のモジュールのためのCのテストを書きたいです。試験は、試験に比べて私はC試験でdlopen()
またはlt_dlopen()
に与えるべき何パス(.xxが.so
又は.la
ある)
を共有オブジェクトmmmm.xxをロード?:私のモジュールの相対位置(開始すべきですプログラムは)私がテストMakefile.am
に合格し-dlopen
オプションはautotoolsのが見つけるのに役立つだろうと期待してlt_dlopen()
で試してみました...
私がチェック、木のうち、チェック、またはメークinstallcheckを作る作るのですかどうかに応じて異なりますlib lt_dlopen()
が呼び出されたときに、lib:lt_dlopen()
は.la
ファイルを開くことができますが、それでも実際にはwherに伝える必要がありますEそのファイルは(おそらく.LIBSディレクトリをommiting)に配置され
ltdl
のlibにテストするときに私のテストのmakefileは次のようになります。
#the module test (tests are also installed, hence the "test" prefix)
test_PROGRAMS = tttt
tttt_SOURCES = tttt.c
tttt_LDADD = "-dlopen" mmmm.la
tttt_DEPENDENCIES = mmmm.la
どれでも良いヒントを?
hmmm。どちらのソリューションもハックのように聞こえます。libtoolとautotoolsを使うのは、可能な限りOSを抽象化することです(ポータブルにする)。 * .soファイル名やLD_LIBRARY_PATHをハードコーディングすると、私たちはサポートしたいOSの小さなサブセットを実際に想定しています(明確にはlinuxをコーディングします)。しかし、それは唯一の(悪い)解決策かもしれません。私はそれがうまくいくと思うので、答えを受け入れるでしょう:そして、あなたは試してみる価値があります。 – user1159290