私はCMakeに変換しようとしているMakefileの小さなプロジェクトを持っています。ほとんどの場合CMakeの経験を得るためです。この例の目的のために、プロジェクトにはソースファイル(C++、特に言語は関係ないと思いますが)と、他の場所からコピーした静的ライブラリファイルが含まれています。議論のために、ライブラリへのソースコードが利用できないと仮定します。私は.aファイルと対応するヘッダーのみを持っています。正常に動作しますCMakeがソースディレクトリの静的ライブラリにリンクするようにするにはどうすればよいですか?
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
:
私の手作りのMakefileは、このビルドルールが含まれています。これを再現するにはどうすればよいですか?文字通りこの正確なmakefileではなく、同等のリンクコマンドを含むものです。私は成功したリンケージにlink_directories(.)
またはadd_library(bingitup STATIC IMPORTED)
など何もこれまでのところ、その結果と
add_executable(main main.cpp libbingitup.a)
または
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
だけでなく、様々なもののように、明らかしかしナイーブな方法を試してみました。私は何をしなければならないのですか?
バージョンの詳細:GCC 4.6.3でLinux上にCMake 2.8.7(Kubuntuの12.04)
グレートを使用して、ライブラリーへのパスを追加したい場合があります!ここで明示的に完全なパスを入れなければならないのはちょっとハックしたようですが、私はそれがちょうどCMakeの方法だと思っています... –
ここでは残念ですが、明示的に完全パスを指定することは複数の異なるバージョンインストールされている同じlibの – Fraser
いつものようにすごい!私の場合は、スタティックライブラリに依存していた別のビルドされたダイナミックライブラリに応じてライブラリの問題を解決しました。依存するライブラリもこのスタティックライブラリにリンクしようとしていました。 – Antonio