Skip to content
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

Merged
merged 7 commits into from
Sep 24, 2024

Conversation

Nobu19800
Copy link

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

  • Did you succeed the build?
  • No warnings for the build?
  • Have you passed the unit tests?

@Nobu19800 Nobu19800 added bug Something isn't working enhancement New feature or request labels Mar 24, 2022
@Nobu19800 Nobu19800 requested a review from n-ando March 24, 2022 04:33
@Nobu19800 Nobu19800 self-assigned this Mar 24, 2022
@n-kawauchi n-kawauchi marked this pull request as ready for review September 11, 2024 00:48
Copy link

@n-kawauchi n-kawauchi left a 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を削除
  • 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.

@n-ando n-ando merged commit 9d3615d into OpenRTM:master Sep 24, 2024
4 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants