2016-08-24 5 views
0

QT作成者にmatlab engineを関与させようとしています。私は文法やリンクの問題がないので、INCLUDEPATHとLIBSを.proファイルに適切に設定したことを確信しています。私はQTからMatlab engOpenを呼び出すことができません

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のプロジェクト\ \ビルド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)でした。 私はMatlab R2015a、QT 5.5.0を両方ともWindows 7上で32ビット使用しています。私はいつもMatlabとQTを管理者として実行しています。私もcmdでmatlab -regserverを実行しようとしましたが、Matlabの簡略化されたコマンドラインウィンドウが表示されました。しかし、QTプログラムはまだクラッシュします。コードや環境を変更するたびに、ビルドの潜在的な問題を避けるために、プログラムを慎重に削除して再構築します。

誰かが私にこの問題についての考えを与えてくれれば、非常に感謝しています。

答えて

0

問題を解決しました。

  1. QtとMatlabが両方とも32ビットか両方の64ビットであることを確認してください。
  2. Qtでmsvcの代わりにmingwコンパイラを使用します。

次に動作します。

関連する問題