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 プログラムは依然としてクラッシュします。また、コードや環境に変更を加えるたびに、潜在的なビルドの問題を回避するために、プログラムを慎重にクリーンアップして再構築します。
誰かがこの問題について何か考えを教えてくれたら、とても感謝しています。