いくつかのディレクトリに同じファイル名を持つソースがある場合、libtoolでライブラリを作る方法
-
26-10-2019 - |
質問
Libtoolを使用してライブラリをコンパイルしようとしています。問題は、いくつかのディレクトリに同じファイル名を持ついくつかのソースファイルがあることです。そのため、AutoreConfの間、LibToolizeは私にエラーをスローします。
基本的に、私のファイルシステムのレイアウトは次のとおりです。
src/
Makefile.am
file.cpp
dir1/
file.cpp
...
dir2/
file.cpp
...
Makefile.am
SRC/ディレクトリに配置され、MakeFile.amを使用してMakeFile.amによって呼び出されます SUBDIRS = src
. 。内容は以下に似ています。
libfoo_la_SOURCES = \
file.cpp \
dir1/file.cpp \
dir2/file.cpp \
...
ただし、autoreconfを実行すると、エラーが発生します。
src/Makefile.am: object `file.lo' created by `dir1/file.cpp' and `file.cpp'
それを解決する方法は?私は各亜学部にmakefile.amを追加する必要があると思います。それを正確に行う方法は? Googleは解決策を見つけるのに役立ちませんでした。
解決 2
解決策は、各サブディレクトリに便利なLibtoolライブラリ(それらがインストールされないように接頭辞を付けます)を作成し、最終的な共有ライブラリにリンクすることです。
他のヒント
ビルドシステムでその動作を行ったとしても、静的ライブラリはまだコードの部分が欠落しています ar 同じ名前のアーカイブメンバーを幸福に上書きします。
所属していません StackOverflow