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