繁体   English   中英

无法从QT呼叫Matlab engOpen

[英]Fail to call Matlab engOpen from QT

我正在尝试让Matlab引擎参与QT创建者。 我确定我已经在.pro文件中正确设置了INCLUDEPATH和LIBS,因为没有语法或链接问题。 我加了

D:\Program Files\Matlab32\bin;
D:\Program Files\Matlab32\runtime\win32;
D:\Program Files\Matlab32\bin\win32

到我的路径。 我在mainwindow.cpp中写道

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "engine.h"
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

qDebug() << "Trying to open the engine";
Engine *ep;
ep = engOpen(NULL);
engClose(ep);

}

MainWindow::~MainWindow()
{
    delete ui;
}

每次我尝试以Debug或Release模式运行代码时,QT都会说

正在启动D:\\ qt项目\\ build-VisVehicle-Qt_5_5_0-Release \\ release \\ VisVehicle.exe ...该程序意外完成。 D:\\ qt projects \\ build-VisVehicle-Qt_5_5_0-Release \\ release \\ VisVehicle.exe崩溃了。

通过注释掉代码,我发现是导致失败的原因是ep = engOpen(NULL)。 我正在Windows 7上使用32位的Matlab R2015a,QT 5.5.0。我始终以管理员身份运行Matlab和QT。 我还尝试在cmd中运行matlab -regserver,弹出了一个简化的Matlab命令行窗口。 但是QT程序仍然崩溃。 每当我对代码或环境进行更改时,我都会仔细清理并重建程序,以避免潜在的构建问题。

如果有人给我一些关于此问题的想法,我将不胜感激。

问题解决了。 有两个关键的事情要做:

  1. 确保您的Qt和Matlab均为32位或64位。
  2. 在Qt中使用mingw编译器代替msvc。

然后它将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM