いくつかのディレクトリに同じファイル名を持つソースがある場合、libtoolでライブラリを作る方法

StackOverflow https://stackoverflow.com/questions/4828429

質問

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 同じ名前のアーカイブメンバーを幸福に上書きします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top