[解決済み] CMakeにソースディレクトリにある静的ライブラリをリンクするように指示するには?
2022-09-20 18:51:44
質問
私は Makefile を持つ小さなプロジェクトを持っており、CMake に変換しようとしています。この例の目的のために、プロジェクトにはソース ファイル (C++、ただし言語は特に関係ないと思います) と、私が他の場所からコピーした静的ライブラリ ファイルが含まれています。議論のために、ライブラリへのソース コードが利用できないと仮定します。私は .a ファイルと対応するヘッダーだけを持っています。
私のハンドメイドの Makefile には、このビルド ルールが含まれています。
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
で、うまく動作します。CMakeにこれを再現するように指示するにはどうしたらよいでしょうか。もちろん、文字通りこの正確なmakefileではなく、同等のリンクコマンドを含む何かです。私は明白な、しかし素朴な方法を試みました、例えば
add_executable(main main.cpp libbingitup.a)
または
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
と同様、様々なものを
link_directories(.)
または
add_library(bingitup STATIC IMPORTED)
などと書いていますが、今のところリンクに成功するものはありません。どうすればいいのでしょうか?
バージョンの詳細。Linux (Kubuntu 12.04) と GCC 4.6.3 上で CMake 2.8.7 を使用。
どのように解決するのですか?
CMakeはライブラリをリンクするためにフルパスを渡すことを好むので、libbingitup.aが以下の場所にあると仮定します。
${CMAKE_SOURCE_DIR}
にあると仮定すると、以下を実行すると成功するはずです。
add_executable(main main.cpp)
target_link_libraries(main ${CMAKE_SOURCE_DIR}/libbingitup.a)
関連
-
[解決済み] CMakeは "make uninstall "をサポートしていますか?
-
[解決済み] プロジェクトでCMAKE_CXX_FLAGSを変更する
-
[解決済み] CMake の add_definitions が動作しないようです。
-
[解決済み] CMake でモジュールディレクトリが見つからない
-
[解決済み] CMAKE_SOURCE_DIRはどこですか?
-
[解決済み】CMakeをGNU Makeと一緒に使う:正確なコマンドを見るにはどうすればいい?
-
[解決済み】変数を設定・使用するCMakeの構文とは?
-
[解決済み】CMakeは具体的にどのように動作するのですか?
-
[解決済み] CMAKEで-fPICコンパイラーオプションを追加する慣用的な方法は何ですか?
-
[解決済み] CMake target_include_directories スコープの意味
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CMakeでソースディレクトリからバイナリディレクトリにファイルをコピーする
-
[解決済み] CMakeは "make uninstall "をサポートしていますか?
-
[解決済み] CMakeでポータブルパラレルビルドを設定するには?
-
[解決済み] cmakeのincludeコマンドにおいて、ファイルとモジュールの違いは何ですか?
-
[解決済み] CMakeのオプション()をコマンドラインで設定する方法
-
[解決済み] cmake --verbose=1` は冗長なcmake出力をしますが、`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` はそうならないのはなぜですか?
-
[解決済み】CMakeをGNU Makeと一緒に使う:正確なコマンドを見るにはどうすればいい?
-
[解決済み】CMakeでGCCとClang/LLVMの切り替えを行う。
-
[解決済み】CMakeは具体的にどのように動作するのですか?
-
[解決済み] CMake target_include_directories スコープの意味