MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Linuxコマンド - CMakeのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Linuxコマンド - CMake
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == CMakeとは、多様なプラットフォームでソースコードをビルドするためのツールである。<br> <br> ここでは、CMake向けに構築されたソースコードをコマンドラインからビルドする方法について記載する。<br> <br><br> == CMakeのインストール == [https://cmake.org/download/ CMakeの公式Webサイト]にアクセスして、<br> cmake-<バージョン>.tar.gzファイル(ソースコード)またはcmake-<バージョン>-linux-x86_64.tar.gzファイル(バイナリ)をダウンロードする。<br> <br> ==== バイナリファイルをインストールする場合 ==== cmake-<バージョン>-linux-x86_64.tar.gzファイル(バイナリ)をを解凍して、任意のインストールディレクトリに配置する。<br> tar xf cmake-<バージョン>-linux-x86_64.tar.gz mkdir <CMakeのインストールディレクトリ> cp -r cmake-<バージョン>-linux-x86_64/* <CMakeのインストールディレクトリ> <br> CMake GUIもインストールする場合、デスクトップエントリファイルを作成する。<br> vi ~/.local/share/applications/CMake_GUI.desktop <br> <syntaxhighlight lang="ini"> # ~/.local/share/applications/CMake_GUI.desktopファイル [Desktop Entry] Type=Application Version=1.0 Name=CMake Comment=Cross-platform buildsystem Exec=/<CMakeのインストールディレクトリ>/bin/cmake-gui %f Icon=/<CMakeのインストールディレクトリ>/share/icons/hicolor/128x128/apps/CMakeSetup Categories=Development; MimeType=application/x-cmakecache; Terminal=false X-MultipleArgs=false StartupNotify=true </syntaxhighlight> <br> ~/.profileファイル等に環境変数PATHを追記する。<br> vi ~/.profile <br> <syntaxhighlight lang="sh"> # ~/.profileファイル export PATH="/<CMakeのインストールディレクトリ>/bin:$PATH" </syntaxhighlight> <br> ==== ソースコードからインストールする場合 ==== CMake GUIをインストールする場合、ビルドに必要なライブラリをインストールする。<br> sudo zypper install libcurl-devel libbz2-devel xz-devel libexpat-devel zlib-devel libarchive-devel libuv-devel \ libzstd-devel jsoncpp-devel rhash-devel libnghttp2-devel python3-Sphinx \ # Qt 6を使用する場合 qt6-core-devel qt6-gui-devel qt6-widgets-devel # Qt 5を使用する場合 libQt5Core-devel libQt5Gui-devel libQt5Widgets-devel <br> cmake-<バージョン>.tar.gzファイル(ソースコード)を解凍する。<br> tar xf cmake-<バージョン>.tar.gz cd cmake-<バージョン> <br> ビルド用ディレクトリを作成する。<br> mkdir build && cd build <br> CMakeをビルドおよびインストールする。<br> # CMake GUIをインストールする場合 CC=<GCC 10以降のGCC> \ CXX=<GCC 10以降のG++> \ ../configure --qt-gui \ --prefix=<CMakeのインストールディレクトリ> または ../bootstrap CC=<GCC 10以降のGCC> \ CXX=<GCC 10以降のG++> \ --qt-gui \ --prefix=<CMakeのインストールディレクトリ> \ --sphinx-html \ --sphinx-man \ --parallel=$(nproc) # CMake GUIをインストールしない場合 CC=<GCC 10以降のGCC> \ CXX=<GCC 10以降のG++> \ ../configure --prefix=<CMakeのインストールディレクトリ> または ../bootstrap CC=<GCC 10以降のGCC> \ CXX=<GCC 10以降のG++> \ --prefix=<CMakeのインストールディレクトリ> \ --sphinx-html \ --sphinx-man \ --parallel=$(nproc) gmake -j $(nproc) gmake install <br> CMake GUIもインストールする場合、デスクトップエントリファイルを作成する。<br> vi ~/.local/share/applications/CMake_GUI.desktop <br> <syntaxhighlight lang="ini"> # ~/.local/share/applications/CMake_GUI.desktopファイル [Desktop Entry] Type=Application Version=1.0 Name=CMake Comment=Cross-platform buildsystem Exec=/<CMakeのインストールディレクトリ>/bin/cmake-gui %f Icon=/<CMakeのインストールディレクトリ>/share/icons/hicolor/128x128/apps/CMakeSetup Categories=Development; MimeType=application/x-cmakecache; Terminal=false X-MultipleArgs=false StartupNotify=true </syntaxhighlight> <br> ~/.profileファイル等に環境変数PATHを追記する。<br> vi ~/.profile <br> <syntaxhighlight lang="sh"> # ~/.profileファイル export PATH="/<CMakeのインストールディレクトリ>/bin:$PATH" </syntaxhighlight> <br><br> == Extra CMake Module (ECM) のインストール == 追加のCMakeモジュールパッケージ (ECM) は、CMakeが提供するモジュールを拡張するものである。<br> ECMは、KDEソフトウェア全体におけるCMakeスクリプトの重複を削減することであるが、CMakeビルドシステムを利用するあらゆるソフトウェアに有用となるよう設計されている。<br> <br> ECMには、以下に示すものが含まれている。<br> * find_packageコマンドが一般的なソフトウェアを検索するために使用するモジュール * CMakeLists.txtファイル内で直接使用して一般的なタスクを実行できるモジュール * ユーザがコマンドラインで指定する必要があるツールチェーンファイル * KDEコミュニティが開発するソフトウェアで使用される一般的なビルド設定 <br> [https://github.com/KDE/extra-cmake-modules/tags Extra CMake ModuleのGithub]にアクセスして、ソースコードをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf extra-cmake-modules-<バージョン>.tar.gz cd extra-cmake-modules-<バージョン> <br> 次に、Extra CMake Moduleのビルドに必要なライブラリをインストールする。<br> sudo zypper install reuse sphinx libsphinxclient-devel \ # Qt 6を使用する場合 python311-Sphinx python311-PyQt6-devel qt6-core-devel qt6-tools qt6-linguist-devel # Qt 5を使用する場合 python3-Sphinx python3-qt5-devel libQt5Core-devel libqt5-qttools libQt5QuickControls2-devel libqt5-linguist-devel <br> ビルド用ディレクトリを作成して、Extra CMake Moduleをビルドおよびインストールする。<br> <u>Extra CMake ModuleのインストールディレクトリはCMakeのインストールディレクトリを共通であることに注意する。</u><br> mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=<CMakeのインストールディレクトリ> \ -DBUILD_QTHELP_DOCS=ON \ .. make -j $(nproc) make install <br><br> == ソース外ビルド == ソースコードディレクトリとビルドディレクトリが異なることをソース外ビルドと呼ぶ。<br> これは、ソースコードとビルドの出力を分離することにより、開発者が同じソースコードディレクトリに複数のビルドディレクトリを作成できるという利点もあり、<br> デバッグバージョンとリリースバージョン等の異なるオプションでビルドをセットアップすることができる。<br> <br> ビルドディレクトリをソースツリーの外側に配置することを推奨する。<br> <br><br> == CMakeコマンドの基本 == まず、ビルドするディレクトリを作成して、そのディレクトリに移動する。<br> ディレクトリを作成する理由は、ソースコードツリーがビルド時の生成ファイルで汚染されるのを防ぐためである。<br> mkdir build cd build <br> 以下のように、CMakeコマンドを実行する。<br> 引数には、ソースコードのルートディレクトリ(CMakeLists.txtファイルがあるディレクトリ)を指定する。<br> cmake -G <プロジェクトジェネレータ 例. "Unix Makefiles"やNinja等> <CMakeLists.txtファイルがあるディレクトリ> cmake --build <ビルドディレクトリ> --config <Debug または Release> --target <ターゲット名> <br> Makefileが作成されるので、それを使用してビルドを行う。<br> make -j $(nproc) make install # ただし、CMakeLists.txtファイルに設定が記述されていることが必要 <br><br> == オプションの指定 == CMakeコマンドの実行時に、オプションを指定することが可能である。<br> <br> インストールディレクトリを指定するには、以下のオプションを付加する。<br> cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ> または cmake --install <インストールディレクトリ> <ソースコードがあるディレクトリ> <br> CコンパイラまたはC++コンパイラを変更するには、以下のオプションを付加する。<br> -DCMAKE_C_COMPILER=<Cコンパイラのパス> -DCMAKE_CXX_COMPILER=<C++コンパイラのパス> <br> CコンパイラまたはC++コンパイラのフラグを変更するには、以下のオプションを付加する。<br> -DCMAKE_C_FLAGS="-std=c17" -DCMAKE_CXX_FLAGS="-std=c++17" <br> オプション設定を対話式に変更する場合は、<code>ccmake</code>コマンドを使用する。<br> ccmakeの操作方法は、画面下部に表示されている通りである。<br> 矢印キーもしくは[J]キー、[K]キーでカーソルが上下に移動すると、中段に選択中の変数の説明が表示される。<br> [Enter]キーでその項目を編集して、[C]キーでConfigureを実行、[G]キーでGenerateを実行して、ccmakeを終了する。<br> ccmake <ソースコードがあるディレクトリ> <br> オプション設定をGUIに変更する場合は、buildディレクトリを作成して、その中で以下のコマンドを実行する。<br> cmake-gui <ソースコードがあるディレクトリ> <br><br> == ビルドタイプの指定 == 変数を通したプロジェクト設定の例として、デバッグ / リリース等のビルドタイプを指定する方法がある。<br> この設定には、<code>CMAKE_BUILD_TYPE、CMAKE_CONFIGURATION_TYPES</code>という2つのキャッシュ変数が絡む。<br> どちらを設定すべきかは、ジェネレータによって変わる。<br> <br> ==== Makefile ==== ジェネレータがMakefileの場合、単一のビルドオプションしか保持できないので、Configure / Generate時にビルドタイプを指定する。<br> ビルドタイプは、キャッシュ変数<code>CMAKE_BUILD_TYPE</code>に値を設定することで指定できる。<br> cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> -DCMAKE_BUILD_TYPE=Release <ソースコードがあるディレクトリ> <br> 次に、生成されたMakefileを使用してビルドする。<br> cmake --build . <br> CMakeでは、標準でDebug、Release、MinSizeRel、RelWithDebInfoの4種類のビルドタイプが用意されている。<br> それぞれどのようなビルドオプションが採用されるかはコンパイラによって違うので、別途調べること。<br> <br> ==== IDE ==== ジェネレータがVisual StudioやXcodeといったIDEの場合、プロジェクトファイルに複数のビルドタイプを保持できるので、<br> Configure / Generate時にビルドタイプを指定する必要はない。<br> cmake -DCMAKE_INSTALL_PREFIX=<インストールディレクトリ> <ソースコードがあるディレクトリ> <br> 次に、ビルドの実行時に、どのビルドタイプを使用するかを指定する。<br> cmake --build . --config Release <br> プロジェクトファイルに含めるビルドタイプを、<code>Release</code>と<code>RelWithDebInfo</code>の2つに限定する場合は、<br> キャッシュ変数<code>CMAKE_CONFIGURATION_TYPES</code>に<code>Release;RelWithDebInfo</code>のように値を設定する。<br> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]]
Linuxコマンド - CMake
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse