-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Azure Pipelines、Windows環境でClang静的解析がエラーになる問題の修正 #1039
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このPRを最新masterへマージして確認したところ、Azureビルドで下記エラーが出ました。
src\ext\transport\FastRTPS\CORBACdrDataPubSubTypes.cpp(73,36): Error C2039: 'DDS_CDR': is not a member of 'eprosima::fastcdr'
src\ext\transport\FastRTPS\CORBACdrDataPubSubTypes.cpp(73,36): Error C2065: 'DDS_CDR': undeclared identifier
src\ext\transport\FastRTPS\CORBACdrDataPubSubTypes.cpp(90,74): Error C2039: 'get_serialized_data_length': is not a member of 'eprosima::fastcdr::Cdr'
これは #1154 でのUbuntu24.04向け修正が影響しています。CORBACdrDataPubSubTypes.cppとROS2Serializer.hは、ROS2 (jazzy) からのeprosima::fastcdr::Cdr変更に対応しているのに、azure-pipelines.ymlにて ros2-dashing を指定しているためエラーになっています。
このため、azure-pipelines.yml で指定しているROS2, omniORB等のバージョンを最新に更新する下記追加修正を行いました。
- ROS2(jazzy)は、現時点で最新の ros2-jazzy-20240705-windows-release-amd64 を利用
- omniORBは4.3.2(Python3.8)を利用
- ここで使用するPythonバージョンは、上記ros2-jazzyを展開し、含まれるPythonバージョンが3.8だったことへ合わせたもの
- jobのmatrixからvs2017を削除
- 指定してもビルド時にキャンセルされた
- 下記ドキュメントで2022 年 6 月 30 日に廃止とあったため
https://learn.microsoft.com/ja-jp/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml
- OpenRTM-aistビルド時のcmakeオプションで、今は不要な下記3項目の削除
-DOMNI_VERSION=42 -DOMNI_MINOR=3 -DOMNITHREAD_VERSION=41
以上の設定でビルドすると下記ビルドエラーが出ますが、本PRの目的のClang静的解析がエラーになる問題は解決しているため、Approveとします。
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5):
Error MSB8066: Custom build for 'D:\a\1\s\build\CMakeFiles\d42d43adc07d3d0fdc8aa12e19b486a2\ROS2Transport_uninstall.rule;
D:\a\1\s\src\ext\transport\ROS2Transport\CMakeLists.txt' exited with code 1.
C:\Users\VssAdministrator\AppData\Local\Temp\MSBuildTemp\tmp80d382ccb35b4cf7a8f2a100819f90aa.rsp(0,0):
Error LNK1170: line in command file contains 131071 or more characters
Process 'msbuild.exe' exited with code '1'.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5):
Error MSB8066: Custom build for 'D:\a\1\s\build\CMakeFiles\d42d43adc07d3d0fdc8aa12e19b486a2\ROS2Transport_uninstall.rule;
D:\a\1\s\src\ext\transport\ROS2Transport\CMakeLists.txt' exited with code 1.
Identify the Bug
Azure Pipelinesで実行するWindows環境のClang静的解析が以下のように失敗する。
windows-latest
のイメージが、以前はwindows-2019
と同じだったが、windows-2022
に変更になっており、windows-2022環境でVisual Studio 2019でのビルドを実行しようとするためエラーになっている。Description of the Change
Visual Studio 2022でビルドと静的解析を実行するように変更した。
またVisual Studio 2022環境で警告が発生したためMacho.h、Macho.cppの警告は抑制、OS.hの警告は修正した。
Verification