0

QTクリエーターにmatlabエンジンを含めようとしています。文法やリンクの問題がないため、.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;
}

コードをデバッグまたはリリース モードで実行しようとするたびに、QT は次のように言います。

D:\qt projects\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 で Matlab R2015a、QT 5.5.0、両方とも 32 ビットを使用しています。常に Matlab と QT を管理者として実行しています。また、cmd で matlab -regserver を実行してみましたが、簡略化された Matlab コマンド ライン ウィンドウが表示されました。しかし、QT プログラムは依然としてクラッシュします。また、コードや環境に変更を加えるたびに、潜在的なビルドの問題を回避するために、プログラムを慎重にクリーンアップして再構築します。

誰かがこの問題について何か考えを教えてくれたら、とても感謝しています。

4

1 に答える 1