2条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
看起来你在尝试编译 ArduPilot 的 DroneCAN 模块时遇到了错误。这个错误是由于 DSDL(Data Serialization Language)文件中的无效语法引起的。DSDL 文件用于描述数据结构,这些结构被用来在不同模块之间交换信息。
错误消息提到一个未知的标记序列
@),这可能是一个历史遗留的格式,现在已经被移除,应该使用普通的括号)替换。为了解决这个问题,你需要检查 DroneCAN 相关的 DSDL 文件,并确保它们遵循了当前的 DSDL 标准。这里是一些步骤来解决这个问题:
-
首先,确定哪个 DSDL 文件包含了这个错误。根据错误信息,错误发生在
dronecan_dsdlc.py文件的第 194 行。打开这个文件并查看那一行,它可能会提供有关哪个具体 DSDL 文件有问题的线索。 -
找到涉及的 DSDL 文件,通常它们位于
ardupilot/ardupilot/mavlink/dSDL或类似的路径下。如果你不确定具体位置,可以全局搜索@)来定位相关文件。 -
在找到的 DSDL 文件中,替换所有
@)为正常的)。确保在整个项目中都进行了这样的替换,因为可能有多个文件受到影响。 -
替换完成后,清理构建缓存。在 ArduPilot 的根目录下运行以下命令:
make clean -
然后重新开始构建:
make
如果上述步骤无法解决问题,可能是其他地方也有类似的错误,或者有其他原因导致。在这种情况下,建议检查整个项目的日志输出,寻找更多关于错误的上下文信息。有时,错误可能是由依赖项、版本不匹配或环境设置问题引起的。
如果你仍然遇到困难,可以考虑在 ArduPilot 的官方论坛或GitHub仓库的 issues 中寻求社区的帮助,他们能提供更具体的指导,因为你提供的错误信息可能与特定的配置或环境有关。记得附上详细的错误日志和你的构建环境信息,以便他人更好地诊断问题。
评论 打赏 举报 编辑记录解决 1无用-

