2011-01-28 2 views
0

libtoolを使用してライブラリをコンパイルしようとしています。問題は、いくつかのディレクトリに同じファイル名のソースファイルがいくつかあることです。そのため、autoreconf中、libtoolizeは私にエラーを投げます。いくつかのディレクトリに同じファイル名のソースがある場合、libtoolを使用してライブラリを作成する方法

は基本的には、次のように私のファイルシステムのレイアウトは次のとおりです。

src/ 
    Makefile.am 
    file.cpp 
    dir1/ 
     file.cpp 
     ... 
    dir2/ 
     file.cpp 
     ... 

Makefile.amのsrc /ディレクトリに配置され、SUBDIRS = srcを使用して、メインMakefile.amによって呼び出されます。内容は、次のような:

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はその解決策を見つけるのには役に立たなかった。

答えて

0

解決策は、各サブディレクトリに便利なlibtoolライブラリ(noinstの前にnoinstを付けてインストールしない)を作成し、最後の共有ライブラリにリンクすることです。

0

ビルドシステムでその作業を行っても、静的ライブラリにはコードの一部が残っています。と同じです。は同じ名前のアーカイブメンバーを幸いに上書きします。

関連する問題