vsomeip编译报错
环境是Ubuntu16.04 boost库为libboost1.58-dev:amd64: /usr/include/boost/version.hpp
gcc版本是gcc-9.4.0



vsomeip编译报错
环境是Ubuntu16.04 boost库为libboost1.58-dev:amd64: /usr/include/boost/version.hpp
gcc版本是gcc-9.4.0



以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:
根据你提供的编译错误截图内容,我将尝试帮你分析并解决这些问题。
错误截图1 显示了多个关于 inline constexpr 变量的声明错误。这些错误通常是因为编译器不支持 inline constexpr 的组合用法或者语法错误导致的。从截图中可以看到,例如 inline constexpr major_version_t DEFAULT_MAJOR = 0x100; 这样的声明方式在某些编译器版本中可能不被支持。
错误截图2 继续显示了关于 inline constexpr 变量的声明错误,并且有一些变量的值可能写错,比如 inline constexpr byte_t MAGIC_COOKIE_CLIENT_MESSAGE = 0x100; 应该是 0xFF。
错误截图3 显示了数组声明的问题,如 inline constexpr byte_t CLIENT_COOKIE[] 应该使用大括号 {} 而不是小括号 () 来包围数组元素。此外,还有一个警告选项 -Wno-tsan 被错误地当作错误处理,因为使用了 -Werror 选项。
确保你的 Boost 库版本与 vsomeip 所需的版本相匹配。你已经安装了 libboost1.58-dev:amd64,需要确认 vsomeip 是否支持这个版本的 Boost。
inline constexpr 的问题,你可以尝试将 inline 关键字从声明中移除,仅保留 constexpr。inline constexpr byte_t CLIENT_COOKIE[] = {0xFF, 0xFF, ...};。-Werror 选项或者将 -Wno-tsan 选项添加到编译命令中,以避免将所有警告当作错误处理。在调整了上述编译选项后,重新运行编译命令。如果问题依然存在,可能需要进一步检查 vsomeip 的编译文档或搜索相关的解决方案。
希望这些建议能帮助你解决问题。如果需要更详细的帮助,可以提供更多的上下文信息或者错误截图的具体内容。