まず、私はCMakeには新しいです。私はinstall
コマンドの引数COMPONENT
が何を意味するのか分かりませんが、私はこれについてCMakeのドキュメントを理解していません。誰かもっと詳しく説明できますか?あなたが私に例をあげれば最善のことです。CMakeの「インストール」コマンドでは、COMPONENT引数は何をすることができますか?
20
A
答えて
33
あなたはなどの部品、例えば「ドキュメント」にグループのインストール先を、「LIBS」、「ランタイム」、
add_library(libone libone.c)
add_executable(one main1.c)
install(TARGETS libone one DESTINATION /somedir COMPONENT comp_one)
add_library(libtwo libtwo.c)
add_executable(two main2.c)
install(TARGETS libtwo two DESTINATION /somedir COMPONENT comp_two)
は、これが唯一のliboneライブラリと1つの実行可能ファイルをインストールするためにcmake -DCOMPONENT=comp_one -P {your_build_dir}/cmake_install.cmake
を実行することが可能になることができます。 make install
を発行すると、すべてのコンポーネントがインストールされます。
-7
CMakeでinstallコマンドを使用できる方法は3つあります。
は、(1)実行可能
INSTALL(TARGETS ExecutableTarget RUNTIME DESTINATION FOLDER_LOCATION)
は(2)静的ライブラリが
INSTALL(TARGETS StaticLibraryTarget ARCHIVE DESTINATION FOLDER_LOCATION)
(3)あなたの答えのための動的ライブラリ
INSTALL(TARGETS SharedLibraryTarget LIBRARY DESTINATION FOLDER_LOCATION)
+3
-1という質問が 'COMPONENT'キーワードの意味に関するものだったからです。この答えは、直交コンセプトである3種類のターゲットを示しています。 –
関連する問題
- 1. cmakeが生成したトップレベルのMakefileにインストール後のコマンドを追加することはできますか?
- 2. ABIごとにcmake引数をgradleで設定することはできますか?
- 3. postpublishスクリプトで二重引用符でコマンド引数を使用することはできますか?
- 4. ラケットマクロはキーワード引数を取ることができますか?
- 5. md-component-idとは何ですか?
- 6. このPHPコマンドとは何ですか?
- 7. CMakeコマンドをbash \ cmdに翻訳し、それを他のcmakeコマンドの引数として渡す方法は?
- 8. Linux 2.6システムで「コマンドが見つかりません」というエラーを引き起こす複数のJavaインストール
- 9. 私はcmdで引数を指定して自分のコマンドを作ることができますか?
- 10. devDependenciesをグローバルにインストールするnpmコマンドとは何ですか?
- 11. C++のoperator []は複数の引数を取ることができますか?
- 12. Windows上のCMakeコマンドconfigure_fileの違いは何ですか?
- 13. ximgproc_DisparityWLSFilter.filter()の引数とは何ですか?
- 14. 引数として何でもかけることができる関数
- 15. sigactionに引数を渡すことはできますか?
- 16. 複数のコマンドを 'if'文でパイプすることはできますか?
- 17. python eval()で複数のコマンドを連結することはできますか?
- 18. 引数 `vc`はコマンド` tf`に何を追加しますか?
- 19. Wit.aiでストーリーを引き起こすものは何ですか?
- 20. windows.msiでnode.jsの複数のインスタンスをインストールすることはできますか?
- 21. cmake:インストール時にcmakeコマンドを実行します。
- 22. BlackBerryはAndroids WebView Componentと同等のものは何ですか?
- 23. 関数を呼び出すことはできますが、print() - コマンドはすべて無視できますか?
- 24. Kohanaでは、404エラーを引き起こすことができますか?
- 25. CMakeはGLEWを見つけることができません
- 26. git-shellコマンドで「引数なしで実行するか-c cmdで実行する」とは何ですか?
- 27. 名前付き引数のルールとは何ですか?
- 28. C++のデフォルト引数を別の引数で初期化することはできますか?
- 29. SIMアプレットは何をすることができますか?
- 30. WPFは何をすることができますか?
感謝をインストールしインストールします。コンポーネントはターゲットと一緒に1つのファイルにインストールされるか、別のファイルを持つ同じディレクトリにインストールされますか?私の意見では、私はこのように異なるターゲットをインストールすることができます:インストール(ターゲットmyExe mySharedLib myStaticLib ランタイムDESTINATIONビン ライブラリDESTINATION lib アーカイブDESTINATION lib /静的)。それは良いです – Samuel
それは目的地のdirsについてではなく、インストールをターゲットにしています。たとえば、4つの 'install()'節があれば、2つは「COMPONENT a」、2つは「COMPONENT b」です。次に、 'make install'を実行すると、4つのターゲットがすべてインストールされますが、コンポーネント名" a "または" b "を指定すると2つだけインストールされます。 – arrowd
すみません、コンポーネントは何ですか。それでも私は混乱しています。私にテストコードを教えてください。私はそれを実行することができます。いくつかの違いを参照してください – Samuel