【发布时间】:2011-06-11 17:03:11
【问题描述】:
我想在 Windows 下的 QT (http://www.mathworks.com/help/techdoc/matlab_external/f39876.html#bsfvqhp-1) 中使用 Matlab 的 C API 打开 .mat 文件。在我的 .pro 文件中,我已包含
INCLUDEPATH += "C:\Program Files\MATLAB\R2010b\extern\include"
工作正常(代码编译)。但是当试图链接 libmat.lib 文件(我已经阅读 .dll 文件不能直接链接)使用
LIBS += -L"C:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft" -llibmat
应用程序在执行时崩溃。给出的错误是[file].exe exited with code -1073741515
我既不是 QT 也不是 Windows 专家,但对于这个项目,我不得不同时使用两者(我想在 GNU/Linux 中修复这个问题会更容易),因此我们将不胜感激。使用 Windows XP、QT 4.7.0 版、Qt Creator 2.0.1 和 Matlab R2010b。
编译器的最后输出以防万一有用:g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug/MainUI.exe debug/main.o debug/maingui.o debug/matparser.o debug/matutils.o debug/moc_maingui.o -L'c:/Qt/2010.05/qt/lib' -lmingw32 -lqtmaind "-LC:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft" -llibmat -lQtGuid4 -lQtCored4
【问题讨论】:
-
您使用的是哪个编译器,您知道使用哪个编译器构建 Matlab 库吗?另外,您能否详细说明您说“已读取无法直接链接的 .dll 文件”时的意思?
-
嗨。我不确定 QT 在 Windows 中使用哪个编译器(我猜是 win32-g++,因为构建系统是 mingw32-make),而且我不知道用于构建 Matlab 库的编译器。当我说 DLL 文件不能直接链接时,我的意思是应该在配置文件 (.pro) 中使用 .lib 文件。
-
好的,谢谢。我明白你现在关于直接链接的意思。我添加了一个答案,表明可能是什么问题。
标签: qt matlab windows-xp .lib