|
|
| 57行目: |
57行目: |
| <br><br> | | <br><br> |
|
| |
|
| == PinePhone / Qtとの連携 == | | == PinePhone / Qt 6との連携 == |
| ==== ツールチェーンの設定 ====
| | CLionを使用してPinePhoneとQt 6のクロス開発を行う場合は、[[インストール_-_Qt6_PinePhone#PinePhone / Qt 6との連携]]のページを参照すること。<br> |
| [ファイル]メニューバー - [設定]を選択する。<br> | |
| [設定]画面の左ペインにある[ビルド、実行、デプロイ] - [ツールチェーン]を選択する。<br>
| |
| [設定]画面の右ペインにある[+]アイコンを選択して、[システム]を選択する。<br>
| |
| <br>
| |
| * ツールチェーンの設定項目
| |
| ** [名前]
| |
| **: 任意の名前を入力する。
| |
| ** [CMake:]
| |
| **: PinePhone向けQtライブラリのビルドに使用したCMakeファイルのパスを入力する。
| |
| ** [ビルドツール:]
| |
| **: PinePhone向けQtライブラリのビルドに使用したNinjaファイルのパスを入力する。
| |
| ** [C コンパイラー:]
| |
| **: PinePhone向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
| |
| **: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
| |
| ** [C++ コンパイラー:]
| |
| **: PinePhone向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
| |
| **: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
| |
| ** [デバッガー:]
| |
| **: GCCツールチェーンのGDBファイルのパスを入力する。
| |
| **: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gdb
| |
| <br>
| |
| [設定]画面の右ペイン下部にある[適用]ボタンを押下する。<br>
| |
| <br>
| |
| ==== CMakeの設定 ====
| |
| [ファイル]メニューバー - [設定]を選択する。<br>
| |
| [設定]画面の左ペインにある[ビルド、実行、デプロイ] - [CMake]を選択する。<br>
| |
| [設定]画面の右ペインにある[+]アイコンを選択する。<br>
| |
| <br>
| |
| * CMakeの設定項目
| |
| ** [名前]
| |
| **: 任意の名前を入力する。
| |
| ** [ビルドタイプ:]プルダウン
| |
| **: [Debug]または[Release]を選択する。
| |
| ** [ツールチェーン:]プルダウン
| |
| **: 上記で設定したツールチェーン名を選択する。
| |
| ** [ジェネレーター:]プルダウン
| |
| **: [デフォルトを使用する]を選択する。
| |
| **: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
| |
| ** [環境:]<br>[環境:]のテキストアイコンを選択して、[環境設定]画面を開く。<br>画面右上の[+]ボタンを押下して、各環境変数を設定する。
| |
| *** CMAKE_C_COMPILER
| |
| ***: PinePhone向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
| |
| ***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
| |
| *** CMAKE_CXX_COMPILER
| |
| ***: PinePhone向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
| |
| ***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
| |
| *** CMAKE_PREFIX_PATH
| |
| ***: PinePhone向けQtライブラリのインストールディレクトリのパスを入力する。
| |
| ***: 例: <PinePhone向けQtライブラリのインストールディレクトリ>
| |
| *** CMAKE_TOOLCHAIN_FILE
| |
| ***: PinePhone向けQtライブラリのインストールディレクトリにあるビルド向けツールチェーンファイルのパスを入力する。
| |
| ***: 例: /<PinePhone向けQtライブラリのインストールディレクトリ>/lib/cmake/Qt6/qt.toolchain.cmake
| |
| *** QT_QMAKE_EXECUTABLE
| |
| ***: PinePhone向けQtライブラリのインストールディレクトリにあるqmakeファイルのパスを入力する。
| |
| ***: 例: /<PinePhone向けQtライブラリのインストールディレクトリ>/bin/qmake-host
| |
| <br>
| |
| [設定]画面の右ペイン下部にある[適用]ボタンを押下する。<br>
| |
| <br>
| |
| ==== SSHの設定 ====
| |
| [ファイル]メニューバー - [設定]を選択する。<br>
| |
| [設定]画面の左ペインにある[ツール] - [SSH 構成]を選択する。<br>
| |
| [設定]画面の右ペインにある[+]アイコンを選択する。<br>
| |
| <br>
| |
| * SSH構成の設定項目
| |
| ** [ホスト:]
| |
| **: PinePhoneのIPアドレスまたはホスト名を入力する。
| |
| ** [ユーザー名:]
| |
| **: PinePhoneのユーザ名を入力する。
| |
| ** [認証タイプ:]プルダウン
| |
| **: [パスワード]または[キーペア]を選択する。
| |
| ** [秘密鍵ファイル:] (キーペアを選択した場合)
| |
| **: 秘密鍵ファイルのパスを入力する。
| |
| ** [パスフレーズ:] (キーペアを選択した場合、かつ、パスフレーズを設定した場合)
| |
| **: 秘密鍵のパスフレーズを入力する。
| |
| ** [構成ファイル ~/.ssh/configの構文解析]チェックボックス
| |
| **: 任意
| |
| <br>
| |
| [接続テスト]ボタンを押下して、PinePhoneにSSH接続する。<br>
| |
| <br>
| |
| [設定]画面の右ペイン右下にある[適用]ボタンを押下する。<br>
| |
| <br>
| |
| ==== 各プロジェクトの設定 ====
| |
| CLionを起動して、[ファイル]メニューバー - [新規] - [プロジェクト...]を選択する。<br>
| |
| [新規プロジェクト]画面から、[Qt Console 実行可能ファイル]または[Qt Widgets 実行可能ファイル]を選択する。<br>
| |
| <br>
| |
| 新規プロジェクトの作成後、[実行]メニューバー - [実行構成の編集...]を選択する。<br>
| |
| [実行/デバッグ構成]画面が開くので、画面左上にある[+]ボタンを押下して、[リモート GDB サーバー]を選択する。<br>
| |
| 画面左ペインに[リモート GDB サーバー]が追加される。<br>
| |
| 画面左ペインに[リモート GDB サーバー]を選択して、各種設定を行う。<br>
| |
| <br>
| |
| * [ターゲット:]プルダウン
| |
| *: プロジェクト名を選択する。
| |
| * [実行可能ファイル:]プルダウン
| |
| *: プロジェクト名を選択する。
| |
| * [GDB:]プルダウン
| |
| *: 上記のツールチェーンの作成セクションで設定したGDBを選択する。
| |
| * [資格情報:]プルダウン
| |
| *: 上記のSSHの設定セクションで設定したSSHを選択する。
| |
| * [実行可能ファイル...]ラジオボタン
| |
| *: 任意
| |
| * [アップロードパス:]
| |
| *: 実行可能バイナリが配置されるPinePhone上のディレクトリを入力する。
| |
| *: 例: /home/<PinePhoneのユーザ名>/CLion/Sample1/debug
| |
| * ['target remote' ...]
| |
| *: 自動的に入力される。
| |
| *: 例: <IPアドレスまたはホスト名>:1234
| |
| * [GDB サーバー引数:]
| |
| *: Qt WidgetsまたはQMLを使用するプロジェクトの場合、デバッグまたは実行時において、実行可能バイナリに<code>-platform wayland</code>オプションを付加する必要がある。
| |
| *: 例: <code>:<GDBサーバのポート番号 例: 1234> /<実行可能バイナリが配置されるPinePhone上のディレクトリ>/debug/<実行バイナリのファイル名> -platform wayland</code>
| |
| <br>
| |
| 次に、[拡張 GDB サーバーオプション]項目を設定する。<br>
| |
| この設定は、PinePhoneにアップロードしたQtライブラリにおいて、デバッグまたは実行に関する設定を行う。<br>
| |
| * [作業ディレクトリ:]
| |
| *: 何も入力しない。
| |
| * [環境変数:]<br>[環境変数:]項目の右にあるテキストアイコンを選択する。<br>[環境変数]画面が開くので、画面左上にある[+]ボタンを押下して各種設定を入力する。
| |
| ** DISPLAY
| |
| **: :0
| |
| ** QT_QPA_PLATFORMTHEME
| |
| **: Qt 6の場合 : qt6ct
| |
| **: Qt 5の場合 : qt5ct
| |
| ** PATH
| |
| **: PinePhone上のQt6ライブラリをアップロードしたbinディレクトリのパスを入力する。
| |
| **: 例: /<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
| |
| ** LD_LIBRARY_PATH
| |
| **: PinePhone上のQt6ライブラリをアップロードしたlibディレクトリのパスを入力する。
| |
| **: 例: /<Qt6ライブラリをアップロードしたディレクトリ>/lib:/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/qmltooling
| |
| ** QT_PLUGIN_PATH
| |
| **: /<Qt6ライブラリをアップロードしたディレクトリ>/plugins
| |
| ** QT_QPA_PLATFORM_PLUGIN_PATH
| |
| **: /<Qt6ライブラリをアップロードしたディレクトリ>/plugins/platforms
| |
| ** QML_IMPORT_PATH
| |
| **: /<Qt6ライブラリをアップロードしたディレクトリ>/qml
| |
| ** QML2_IMPORT_PATH
| |
| **: /<Qt6ライブラリをアップロードしたディレクトリ>/qml
| |
| ** QT_DEBUG_PLUGINS
| |
| **: 0または1を入力する。
| |
| ** LANG
| |
| **: 日本語を設定する場合は、<code>ja_JP.UTF-8</code>と入力する。
| |
| <br>
| |
| また、[拡張 GDB サーバーオプション]項目の設定は、プロジェクトディレクトリ内の<u>.idea/runConfigurations/<プロジェクト名>.xml</u>ファイルに保存されている。<br>
| |
| このファイルを直接編集することにより、上記の設定を行うこともできる。<br>
| |
| <br>
| |
| CLion上で上記の設定を行うには煩雑なため、ファイルを直接編集することを推奨する。<br>
| |
| cd <プロジェクトディレクトリ>
| |
| vi .idea/runConfigurations/<プロジェクト名>.xml
| |
| <br>
| |
| <syntaxhighlight lang="xml">
| |
| <!-- .idea/runConfigurations/<プロジェクト名>.xml -->
| |
|
| |
| <component name="ProjectRunConfigurationManager">
| |
| <configuration ...略>
| |
| <envs>
| |
| <env name="DISPLAY" value=":0" />
| |
| <env name="LANG" value="ja_JP.UTF-8" />
| |
| <env name="QML2_IMPORT_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/qml" />
| |
| <env name="QML_IMPORT_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/qml" />
| |
| <env name="QT_DEBUG_PLUGINS" value="0" />
| |
| <env name="QT_PLUGIN_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/plugins" />
| |
| <env name="QT_QPA_PLATFORM_PLUGIN_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/platforms" />
| |
| <env name="QT_QPA_PLATFORMTHEME" value="qt6ct" />
| |
| <env name="LD_LIBRARY_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/lib:/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/qmltooling" />
| |
| <env name="PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" />
| |
| </envs>
| |
|
| |
| <!-- ...略 -->
| |
|
| |
| </configuration>
| |
| </component>
| |
| </syntaxhighlight>
| |
| <br>
| |
| | |
| ==== GDBの設定 ====
| |
| プロジェクトにデバッグのためのより多くの設定が必要な場合、デバッガの初期化ファイル (GDBの場合は.gdbinit、LLDBの場合は.lldbinit) をプロジェクトディレクトリ直下に作成する。<br>
| |
| このファイルは、他のプロジェクトと一緒にVCSで共有することもできる。<br>
| |
| <br>
| |
| 一般的に、GDB / LLDBは起動時に初期化ファイルを一定の順序で読み込む。<br>
| |
| まず、デバッガはユーザのホームディレクトリにある初期化ファイルを探して、次に、現在のプロジェクトディレクトリ直下にある初期化ファイルを探す。<br>
| |
| <br>
| |
| ただし、デフォルトの設定では、セキュリティ上の理由から、プロジェクト固有の初期化ファイルからのコマンドは実行されない。<br>
| |
| そのため、ホームディレクトリの初期化ファイルである<u>~/.gdbinit</u>ファイルまたは<u>~/.lldbinit</u>ファイルを、以下に示すように編集する。<br>
| |
| vi ~/.gdbinit または vi ~/.lldbinit
| |
| <br>
| |
| <syntaxhighlight lang="sh">
| |
| # ~/.gdbinitファイル または ~/.lldbinitファイル
| |
|
| |
| set auto-load safe-path /
| |
|
| |
| # または
| |
|
| |
| set auto-load local-gdbinit on
| |
| add-auto-load-safe-path /
| |
| </syntaxhighlight>
| |
| <br>
| |
| 次に、プロジェクトディレクトリの直下に.gdbinitファイルを作成する。<br>
| |
| cd <プロジェクトディレクトリ>
| |
| vi .gdbinit または vi .lldbinit
| |
| <br>
| |
| <syntaxhighlight lang="sh">
| |
| # /<プロジェクトディレクトリ>/.gdbinitファイル または /<プロジェクトディレクトリ>/.lldbinitファイル
| |
|
| |
| set sysroot <PinePhoneのシステムルートディレクトリ>
| |
| </syntaxhighlight>
| |
| <br>
| |
| CLionを起動して、任意のプロジェクトを開く。<br>
| |
| CLionのメイン画面左にあるプロジェクトに.gdbinitファイル、または、.lldbinitファイルが追加されているかどうかを確認する。<br>
| |
| <br><br> | | <br><br> |
|
| |
|
概要
CLionは、C/C++向けのクロスプラットフォームIDEである。
- コーディング支援
- エディタは、コードの読み取りと記述を効果的に行うことができる。
- スマート補完に入力すれば補完結果を絞り込み、パンくずリストでは範囲階層内で場所をトラッキングすることができる。
- また、パラメータ名ヒントのお陰で、関数呼び出しに関する洞察も得られる。
- シンボルの使用箇所をコンテキストに合わせて検索したり、名前を入力するだけでそのシンボルに移動することも可能である。
- CLionでは、書式設定や命名規則等も含む様々なコーディングガイドラインに準じたコード検証も行うことができる。
- コード生成
- 多数のボイラープレートコードを瞬時に生成する。
- 関数のオーバーライドや実装には単純なショートカットが用意されており、コンストラクタ、デストラクタ、getter、setter、等値、リレーショナル、ストリーム出力演算子も生成できる。
- ステートメントでコードブロックをラッピングしたり、使用箇所から宣言を生成することも可能である。
- カスタムライブテンプレートを作成することにより、頻繁に使用するコードブロックをコードベース全体で再利用できるようになるため、開発にかかる時間を短縮して、一貫したスタイルを維持することができる。
- 安全なリファクタリング
- シンボル名の変更、関数、変数、マクロのインライン化、階層内でのメンバの移動、関数シグネチャの変更、関数、変数、パラメータ、
typedefの抽出等、
- 使用する自動リファクタリングに関係なく、全コードへの適切な変更は、CLionが安全にプロパゲートする。
- クイックドキュメント
- キャレットのあるコードをインスペクションすることにより、関数シグネチャの詳細、コメントの表示、Doxygen式ドキュメンテーションのプレビュー、明示的な型が不足するシンボルの推論型の確認、
- 適切に書式設定された最終的なマクロの置換の確認まで、コードに関するあらゆる情報を知ることができる。
- 統合デバッガ
- GDBまたはLLDBをバックエンドとして使用するCLionのデバッガを使用することにより、問題の調査と解決を難なく行うことができる。
- ローカルプロセスへのアタッチ、リモートデバッグが可能である。
- 組み込み開発では、CLionのOpenOCD、Embedded GDB Server構成により、オンチップデバッグが可能となる。
- 組み込みデバイス用の分解ビュー、メモリビュー、ペリフィラルビューを活用すれば、さらに詳細な情報を得ることができる。
また、統合されたC/C++開発環境として、以下に示すような特徴もある。
- プロジェクトモデル
- CLionでは、プロジェクトモデルを使用して、コーディング支援、リファクタリング、コーディングスタイルの一貫性、その他のスマートアクションに関する情報をエディター内に表示する。
- CMake、Makefile、Gradle、コンパイルデータベース等に対応している。
- リモートでのコラボレーション作業
- ソースコードをローカルで編集した後、アプリケーションまたはユニットテストをローカル、リモート、オンチップで、ビルドおよび実行できる。
- コラボレーション環境を向上させて、複数人とリアルタイムでCLionプロジェクトの作業を行うことができる。
- 必要なものを全て1箇所に集約
- CLionには、VCS (SVN / Git / GitHub / Mercurial / Perforce)、ユニットテスト用のGoogle Test / Catch / Boost.Testフレームワーク、
- Doxygen、データベースツール、Markdown等をサポートしており、開発タスクに欠かせないあらゆる機能が含まれている。
CLionのインストール
CLionの公式Webサイトにアクセスして、CLionをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf CLion-<バージョン>.tar.gz
mv CLion-<バージョン> CLion
必要ならば、CLionを任意のインストールディレクトリに配置する。
mv CLion <任意のインストールディレクトリ>
CLionのデスクトップエントリファイルを作成する。
CLionを起動して、[ツール]メニューバー - [デスクトップエントリの作成]を選択する。
~/.local/share/applicationsディレクトリにCLionのデスクトップエントリファイルが作成される。
PinePhone / Qt 6との連携
CLionを使用してPinePhoneとQt 6のクロス開発を行う場合は、インストール_-_Qt6_PinePhone#PinePhone / Qt 6との連携のページを参照すること。
MSP430との連携
MSP430向けGCCツールチェーンと開発向けヘッダファイル群のダウンロード
TIの公式Webサイトにアクセスして、MSP430のGCCツールチェーンおよびMSP430の開発向けヘッダファイル群をダウンロードする。
ダウンロードするファイルは2つである。
- Mitto Systems GCC 64-bit Linux installer incl. support files
- Header and Support Files
ダウンロードしたファイルを解凍する。
# MSP430 GCCツールチェーン
7z x msp430-gcc-full-linux-x64-installer-<バージョン>.7z
# MSP430 開発向けヘッダファイル群
unzip msp430-gcc-support-files-<バージョン>.zip
mv msp430-gcc-support-files-<バージョン> <任意のディレクトリ>
MSP430 GCCツールチェーンをインストールする。
sudo ./msp430-gcc-full-linux-x64-installer-<バージョン>.run \
--prefix <MSP430 GCCツールチェーンのインストールディレクトリ 例: /opt/TI/MSP430_GCC> \
--mode xwindow --installer-language ja
# または
kdesu -c './msp430-gcc-full-linux-x64-installer-<バージョン>.run \
--prefix <MSP430 GCCツールチェーンのインストールディレクトリ 例: /opt/TI/MSP430_GCC> \
--mode xwindow --installer-language ja'
/<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_consoleファイルに実行権限を付加する。
chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console
# または
sudo chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console
MSP Debugのインストール (eZ-430を使用する場合)
MSP Debugのビルドに必要なライブラリをインストールする。
# SUSE
sudo zypper install readline-devel libusb-1_0-devel libusb-compat-devel
MSP DebugのGithubにアクセスして、ソースコードをダウンロードする。
git clone https://github.com/dlbeer/mspdebug.git
cd mspdebug
MSP Debugをビルドおよびインストールする。
make PREFIX=<MSP Debugのインストールディレクトリ> -j $(nproc)
make PREFIX=<MSP Debugのインストールディレクトリ> install
MSP Flasherのインストール (ez-FETを使用する場合)
TIの公式Webサイトにアクセスして、MSP Flasherをダウンロードする。
- Linux 64-Bit Installer for MSPFlasher
ダウンロードしたファイルを解凍する。
unzip MSPFlasher-<バージョン>-linux-x64-installer.zip
解凍したファイル (インストーラ) に実行権限を付加する。
chmod u+x MSPFlasher-<バージョン>-linux-x64-installer.run
MSP Flasherをインストールする。
MSP Flasherのインストールディレクトリは、任意のディレクトリで構わない。
./MSPFlasher-<バージョン>-linux-x64-installer.run
MSP430向けGCCツールチェーンのアンインストール
/<MSP430向けGCCツールチェーンのインストールディレクトリ>/binディレクトリに移動する。
cd /<MSP430向けGCCツールチェーンのインストールディレクトリ>/bin
MSP430向けGCCツールチェーンをアンインストールする。
sudo ./uninstall
# または
kdesu ./uninstall