主要内容

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

故障排除:无法在目标计算机上加载共享对象

在目标计算机上加载并运行一个依赖于共享对象 (.so) 的实时应用程序时,该实时应用程序无法运行也无法加载该库。在系统日志中,会出现类似以下错误的消息:

ldd:FATAL: Could not load library xyz.so

问题含义

加载共享对象时出现错误,可能表明目标计算机上的库依赖项存在缺失或损坏的问题。问题可能是:

  • 下载到目标计算机 Speedgoat® 的过程中,修改或删除了目标计算机上的某些必需文件。

  • 下载到目标计算机后,该库被放置在了一个在实时应用程序运行时无法访问的位置。

尝试此解决方法

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

Check for Issues with Required Files

要检查此问题,请连接到目标计算机,然后尝试构建、加载并运行示例模型 slrt_ex_osc。如果使用默认目标计算机,请在 MATLAB® 命令行窗口中输入:

tg = slrealtime;
connect(tg);
openExample('slrealtime/SlrtAddIOBlocksToSimulinkModelExample');
open_system('slrt_ex_osc');
slbuild('slrt_ex_osc');
load('slrt_ex_osc');
start('slrt_ex_osc');

如果您能够成功连接到目标计算机,并成功构建、加载和运行实时应用程序,则说明目标计算机上的文件没有问题。

如果无法成功完成这些操作,请使用 force 选项更新目标计算机的软件。如果使用默认目标计算机,请在 MATLAB 命令行窗口中输入:

update(tg,'force',true);

软件更新完成后,请连接到目标计算机,并尝试构建、加载和运行该实时应用程序。

Check Location of Shared Object on Target Computer

要检查此问题,请使用 SSH 或 FTP 查看目标计算机上共享对象文件的位置。有关详细信息,请参阅通过控制台或 SSH 执行目标计算机的命令行命令

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

另请参阅

|

主题