Windows上(WSLではないです)でROS 2のcolcon buildをしようとしたのですがビルドが通りませんでした.
それだけではなく,直接的なエラーメッセージが出力されず,対処できませんでした.
これに対する対処法を備忘録かねて書きます.
環境
記事執筆時の環境です.
- Windows 11
- ROS 2 foxy
対処法
以下のQ&Aに対処法があります.
ROS2 colcon build on windows no error message shown when it failed - ROS Answers
以下のように記載されています.
Unfortunately the Visual Studio compiler outputs error messages to stdout instead of stderr. By default colcon build hides the stdout output and only shows stderr output.
すなわち,ビルドを行うVSのコンパイラがstdout
にエラーメッセージを出す一方,colcon
はstdout
を出力しないため,エラーメッセージが見えない状態になっているようです.
これは,colcon build
時に次のようにオプションをつけてやると解決します.
colcon build --event-handlers console_cohesion+
なお,このままだと日本語が出力された際にPythonの文字コードエラーが出てしまうので,以下のコマンドでコンソールの文字コードを変更する
chcp 65001
か,PowerShell起動時に文字コードがUTF-8になるよう変更を加えてやる必要があります.