如何从matlab调用Qtproject?

时间:2012-09-10 11:00:12

标签: qt matlab

我在matlab中有一个函数,它写了一个我在qt项目中使用的file.txt。

所以,

当我使用unix()运行qt编译的可执行文件时,我有一个Matlab文件,但是我收到了错误。

代码:

unix('/home/matt/Desktop/PlaneVolumeFinal/PlaneVolumeGui');

错误:

/home/matt/Desktop/PlaneVolumeFinal/PlaneVolumeGui: symbol lookup error: /home/matt/Desktop
/PlaneVolumeFinal/PlaneVolumeGui: undefined symbol: _ZN9QListData7detach3Ev

4 个答案:

答案 0 :(得分:4)

正如@grungetta也指出的那样,问题可能与MATLAB本地库路径无关,而是看不到你的Qt库,如libQtMultimedia.so,它通常应该在任何shell会话中通过{{1}显示的路径中变种

解决此问题的一种方法是在MATLAB运行会话中明确设置LD_LIBRARY_PATH的值(如果需要继续,则重新存储它)。 MATLAB脚本的一组示例命令可能是:

LD_LIBRARY_PATH

答案 1 :(得分:0)

我不完全确定你想以什么方式调用Qt项目;但是,MATLAB system命令可能会有所帮助。此命令用于执行操作系统命令并返回结果。

因此,如果您只是想从MATLAB开始执行,这可能就是您想要的。

此外,dosunix是两个相关的MATLAB命令,根据您的具体情况可能更合适。

答案 2 :(得分:0)

我没有任何使用Matlab的经验,但这是我的2美分。

  1. 如果/ home / matt / Desktop / PlaneVolumeFinal / PlaneVolumeGui在命令提示符下工作正常,那么似乎MatLab无法找到libQtCore.so(我不确定如何命名库,但是我指的是QtCore库)。在这种情况下,将Qt的核心库复制到MatLab的一个搜索位置并尝试。 如果它从命令提示符中给出了相同的错误,那么这意味着Qt的库不在搜索路径中。也许你可以在LD_LIBRARY_PATH中添加PATH_TO_QTLIBS。

  2. 另一个原因可能是您的系统上可能有多个版本的Qt,并且当您尝试运行该应用程序时,加载程序正在尝试引用其他版本。

  3. 希望这有帮助。

答案 3 :(得分:0)

这可能是库版本的问题。二进制文件是否使用与系统QT不同的QT版本编译? 系统中有多少个库版本? 执行“ldd / home / matt / Desktop / PlaneVolumeFinal / PlaneVolumeGui”时输出结果是什么?