主要内容

本页采用了机器翻译。点击此处可查看英文原文。

排查模型与静态库或共享对象的链接问题

在将实时应用程序链接到静态库 (.a) 或共享对象 (.so) 时,会出现一些建模和运行时问题。

问题含义

在构建或运行调用静态链接库 (.a) 或共享对象库 (.so) 的实时应用程序时,有几点注意事项可帮助您使用与 Speedgoat® 目标计算机上基于 Linux®RTOS 兼容的库。在排查库的使用问题时,以下建议非常有用,包括:

  • 一个指向基于 Linux 的 RTOS 库的链接,该库可在 Simulink Real-Time 中使用

  • 通过 FMU 模块包含在模型中的共享对象

  • 与实时应用程序链接的自定义静态库或共享对象

尝试此解决方法

这些解决方法针对可能出现的问题进行了探讨。

Link to Accessible Libraries or Objects

当您链接到静态库或共享对象时,该库或对象必须:

  • 与目标计算机的实时操作系统 (RTOS) 兼容 ( Linux)

  • 在编译时可供工具链访问

请检查以确保您已遵循库兼容性指南。请参阅External Code Integration of Libraries and C/C++ Code with Simulink Real-Time Models。请确认工具链在构建时能够访问该库。请注意,RTOS 工具无法处理文件路径中的空格。

Install Shared Objects on Target Computer

构建好与共享对象链接的实时应用程序后,请将该实时应用程序和共享对象一并安装到目标计算机上。将共享对象复制到目标计算机上的某个位置,以便在运行时能够找到并加载它们。推荐的位置是 /lib/usr/lib/usr/local/lib。要将文件复制到这些位置,需要 root 权限。

Rebuild Real-Time Application When Rebuilding Static Libraries

由于已链接的静态库被包含在实时应用程序中,因此当您修改并重新构建某个静态库时,也会重新构建所有包含该库的实时应用程序。重新构建静态库和实时应用程序后,请在目标计算机上重新安装实时应用程序。

另请参阅

主题

外部网站