インストール - CLion

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要

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のデスクトップエントリファイルが作成される。


Raspberry Pi / Qt 5との連携

CLionを使用してRaspberry PiとQt 5のクロス開発を行う場合は、インストール_-_Qt5_Raspberry_Pi#CLion / Qt 5との連携のページを参照すること。


PinePhone / Qt 5との連携

CLionを使用してPinePhoneとQt 5のクロス開発を行う場合は、インストール_-_Qt5_PinePhone#CLion / Qt 5との連携のページを参照すること。


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 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


MSP Debugのインストール

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


MSP430向けGCCツールチェーンのアンインストール

/<MSP430向けGCCツールチェーンのインストールディレクトリ>/binディレクトリに移動する。

cd /<MSP430向けGCCツールチェーンのインストールディレクトリ>/bin


MSP430向けGCCツールチェーンをアンインストールする。

sudo ./uninstall
# または
kdesu ./uninstall


CLionの設定

CMakeツールチェーンファイルの作成
vi /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmake


 # /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmakeファイル
 
 include(CMakeForceCompiler)
 
 # ツールチェーン等のパス
 SET(PLATFORM_PACKAGES_PATH    "<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス  例: /opt/TI/MSP430_GCC>")
 list(APPEND CMAKE_MODULE_PATH "<CLionのMSP430プロジェクトのトップディレクトリ  例: /home/user/MSP430Project>")
 list(APPEND CMAKE_MODULE_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
 list(APPEND CMAKE_PREFIX_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
 INCLUDE_DIRECTORIES("${PLATFORM_PACKAGES_PATH}/include ${INCLUDE_DIRECTORIES}")
 
 # ターゲットデバイス名
 SET(SUPPORTED_DEVICES "<ターゲットデバイス名  例: msp430g2553>" CACHE STRING "Supported Target Devices")
 
 set(CMAKE_SYSTEM_NAME msp430-gcc)
 
 # コンパイラの設定
 SET(MSP430_TI_COMPILER_FOLDER   ${PLATFORM_PACKAGES_PATH})
 SET(MSP430_TI_BIN_FOLDER        ${MSP430_TI_COMPILER_FOLDER}/bin)
 SET(MSP430_TI_INCLUDE_FOLDER    ${MSP430_TI_COMPILER_FOLDER}/include)
 SET(TOOLCHAIN_PREFIX            msp430-elf)
 SET(TOOLCHAIN_BIN_PATH          ${MSP430_TI_BIN_FOLDER})
 SET(FLASHER_PATH                <上記のセクションでインストールしたMSP Flasherのパス  例: /home/user/MSPFlasher>)
 SET(MSPDEBUG_PATH               <上記のセクションでインストールしたMSP Debugのパス    例: /home/user/MSP_Debug/bin>)
 SET(MSPDEBUG_DEVICE             ezfet)
 
 INCLUDE_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${INCLUDE_DIRECTORIES})
 
 LINK_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${LINK_DIRECTORIES})
 
 FIND_PROGRAM(MSP430_CC      ${TOOLCHAIN_PREFIX}-gcc     PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_CXX     ${TOOLCHAIN_PREFIX}-g++     PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_AR      ${TOOLCHAIN_PREFIX}-ar      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_AS      ${TOOLCHAIN_PREFIX}-as      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_OBJDUMP ${TOOLCHAIN_PREFIX}-objdump PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_OBJCOPY ${TOOLCHAIN_PREFIX}-objcopy PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_SIZE    ${TOOLCHAIN_PREFIX}-size    PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_NM      ${TOOLCHAIN_PREFIX}-nm      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSPDEBUG       mspdebug                    PATHS ${MSPDEBUG_PATH})
 FIND_PROGRAM(MSP430_FLASHER MSP430Flasher               PATHS ${FLASHER_PATH})
 
 set(CMAKE_C_COMPILER    ${MSP430_CC} CACHE STRING "C Compiler")
 set(CMAKE_CXX_COMPILER  ${MSP430_CXX} CACHE STRING "C++ Compiler")
 
 set(AS     ${MSP430_AS} CACHE STRING "AS Binary")
 set(AR     ${MSP430_AR} CACHE STRING "AR Binary")
 set(OBJCOPY ${MSP430_OBJCOPY} CACHE STRING "OBJCOPY Binary")
 set(OBJDUMP ${MSP430_OBJDUMP} CACHE STRING "OBJDUMP Binary")
 set(SIZE    ${MSP430_SIZE} CACHE STRING "SIZE Binary") 
 
 IF(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
       "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
       FORCE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
 set(MSPGCC_OPT_LEVEL    "g" CACHE STRING "MSPGCC OPT LEVEL")
 set(MSPGCC_WARN_PROFILE "-Wall -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wunused"
            CACHE STRING "MSPGCC WARNINGS")
 
 set(MSPGCC_DISABLED_BUILTINS "-fno-builtin-printf -fno-builtin-sprintf"
                              CACHE STRING "MSPGCC Disabled Builtins")
 
 set(MSPGCC_OPTIONS "-gdwarf-3 -fdata-sections -ffunction-sections -fverbose-asm ${MSPGCC_DISABLED_BUILTINS}"
                    CACHE STRING "MSPGCC OPTIONS")
 
 set(CMAKE_C_FLAGS   "${MSPGCC_WARN_PROFILE} ${MSPGCC_OPTIONS} -O${MSPGCC_OPT_LEVEL}  -DGCC_MSP430" CACHE STRING "C Flags")
 
 set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--gc-sections -Wl,--print-gc-sections"
                               CACHE STRING "Linker Flags")
 set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections"
                            CACHE STRING "Linker Flags")
 
 # リンカコマンドの設定
 set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_C_COMPILER> ${CMAKE_EXE_LINKER_FLAGS} <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
                               CACHE STRING "C++ Executable Link Command")
 
 set(CMAKE_C_LINK_EXECUTABLE ${CMAKE_CXX_LINK_EXECUTABLE} CACHE STRING "C Executable Link Command")
 
 set(PROGBIN     ${MSP430_FLASHER} CACHE STRING "Programmer Application")


リンカコマンドファイルのコピー

ターゲットデバイスのリンカコマンドファイルを、プロジェクトのトップディレクトリにコピーする。

cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/<ターゲットデバイス名>.ld \
   <MSP430プロジェクトのトップディレクトリ>

# 例: MSP430G2553を使用する場合
cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/msp430g2553.ld \
   <MSP430プロジェクトのトップディレクトリ>


プロジェクトの設定
  1. プロジェクトを開いて、[ファイル]メニューバー - [設定]を選択する。
  2. [設定]画面の左ペインから、[ビルド、実行、デプロイ] - [CMake]を選択する。
  3. [設定]画面の右ペインから、[+]アイコンを選択して、CMakeの設定を行う。
    • [名前]
      任意の名前
    • [ビルドタイプ]プルダウン
      Debug
    • [ツールチェーン]プルダウン
      MSP430ツールチェーンを選択する。
    • [ジェネレーター]
      [デフォルトを使用する]
    • [CMakeオプション]
      -DCMAKE_TOOLCHAIN_FILE=<上記のセクションで作成したCMakeツールチェーンファイルのパス>
  4. [OK]ボタンを押下する。