Skip to content

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を使用すると、再コンパイルを高速化できます。 特別な理由がない限り、時間を節約するためにこれを使用することをお勧めします。

  1. Ccacheのインストール:

    sudo apt update && sudo apt install ccache
    
  2. .bashrcに次のように記述します:

    export CC="/usr/lib/ccache/gcc"
    export CXX="/usr/lib/ccache/g++"