【发布时间】:2016-05-18 04:42:59
【问题描述】:
我正在尝试读取 Qt 项目中自己的 mat_file_read.cpp 中的 mat 文件,但遇到了问题。我的错误:
error lnk2019: unresolved external symbol matOpen referenced in function "int __cdecl read_mat_file(class QString)" (?read_mat_file@@YAHVQString@@@Z)"
在我的 project.pro 中,我包括:
INCLUDEPATH += C:\Program Files\MATLAB\MATLAB Production Server\R2015a\extern\include\
LIBS += -LC:\Program Files\MATLAB\MATLAB Production Server\R2015a\bin\win64
-llibmx
-llibmat
-llibeng
在我的 cpp 文件的标题中:
#include <stdio.h>
#include <stdlib.h>
#include "mat.h"
#include "matrix.h"
#include <QString>
#include <QFileDialog>
在我的 mat_file_reader.cpp 中:
#include "read_mat_file.h"
int read_mat_file(QString file)
{
// Variable definition
int result;
MATFile *pmat;
if (file.isEmpty()) return 0;
QByteArray ba = file.toLatin1();
const char *rootFile = ba.data();
pmat = matOpen(rootFile,"r");
result = 0;
return (result==0)?EXIT_SUCCESS:EXIT_FAILURE;
}
奇怪的是 Qt 编辑器正在识别“mat.h”中的函数。它在向我建议功能....
非常感谢。
【问题讨论】:
-
我认为与此链接相同:mathworks.com/matlabcentral/answers/…
-
至少我想你会想链接
libmwsaveload -
感谢@Suever,但这不是问题!不过非常感谢。
-
你能把你的
read_mat_file函数的内容包含进去吗? -
这在 *nix 上编译没有问题,所以可能是特定于 Windows 的。从库中删除 lib 前缀有什么好处?