colconの高度な使用法#
このページでは、colconの高度で便利な使用法をいくつか紹介します。
さらに詳細な情報が必要な場合はcolconのドキュメントを参照してください。
よくある間違い#
ワークスペースのルート以外からは実行しないでください#
colconビルドは現在のディレクトリの下にのみ行われるため、常にワークスペースのルートからcolcon buildを実行することが重要です。
誤って間違ったディレクトリを構築してしまった場合はrm -rf build/ install/ log/を実行して生成されたファイルをクリーンアップします。
ワークスペースを不必要にオーバーレイしないでください#
ワークスペースを構築する前に他のワークスペースのsetup.bashを実行した場合は、colconはワークスペースをオーバーレイします。
特に複数のワークスペースがある場合は、これに注意する必要があります。
echo $COLCON_PREFIX_PATHを実行して、ワークスペースがオーバーレイされているかどうかを確認します。
一部のワークスペースが不必要にオーバーレイされている場合は、ビルドされたファイルをすべて削除し、ターミナルを再起動して環境変数をクリーンアップし、ワークスペースを再構築します。
workspace overlayingの詳細についてはROS2のドキュメントを参照してください。
ビルドアーティファクトのクリーンアップ#
colconは古いキャッシュが原因でエラーが発生することがあります。
キャッシュを削除してワークスペースを再構築するには、次のコマンドを実行します:
rm -rf build/ install/
どのパッケージを削除すればよいかわかっている場合:
rm -rf {build,install}/{package_a,package_b}
ビルドするパッケージの選択#
指定したパッケージのみをビルドするには:
colcon build --packages-select <package_name1> <package_name2> ...
指定したパッケージとその依存関係を再帰的にビルドするには:
colcon build --packages-up-to <package_name1> <package_name2> ...
これらのオプションはcolcon testにも使用できます。
最適化レベルの変更#
DCMAKE_BUILD_TYPEを最適化レベルを変更する場合に設定します。
警告
DCMAKE_BUILD_TYPE=Debugを指定した場合、またはAutoware全体のビルドにDCMAKE_BUILD_TYPEが指定されていない場合、速度が遅すぎて使用できない可能性があります。
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Debug
colcon build --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
colconのデフォルト設定の変更#
$COLCON_HOME/defaults.yamlデフォルト設定を変更するには$COLCON_HOME/defaults.yamlを作成します。
mkdir -p ~/.colcon
cat << EOS > ~/.colcon/defaults.yaml
{
    "build": {
        "symlink-install": true
    }
}
詳細についてはこちらを参照してください。
compile_commands.jsonの生成#
compile_commands.jsonは、ビルドの依存関係とシンボルの関係を分析するために IDE/ツールによって使用されます。
DCMAKE_EXPORT_COMPILE_COMMANDS=1フラグを使用して生成できます:
colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=1
コンパイラコマンドの確認#
パッケージのコンパイラとリンカーの呼び出しを確認するには、VERBOSE=1と--event-handlers console_cohesion+を使用します。:
VERBOSE=1 colcon build --packages-up-to <package_name> --event-handlers console_cohesion+
その他のオプションについてはこちらを参照してください。
Ccacheの使用#
Ccacheを使用すると、再コンパイルを高速化できます。 特別な理由がない限り、時間を節約するためにこれを使用することをお勧めします。
- 
Ccacheのインストール:sudo apt update && sudo apt install ccache
- 
.bashrcに次のように記述します:export CC="/usr/lib/ccache/gcc" export CXX="/usr/lib/ccache/g++"