質問

qt(http://www.mathworks.com/help/techdoc/matlab_external/f39876.html#bsfvqhp-1)内で.matファイルを開くためにMatlabのC APIを使用したい。私の.proファイルに含めましたINCLUDEPATH += "C:\Program Files\MATLAB\R2010b\extern\include" 正常に動作します(コードコンパイル)。ただし、libmat.libファイルをリンクしようとすると(.dllファイルを直接リンクできない)LIBS += -L"C:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft" -llibmat アプリケーションは実行時にクラッシュします。指定されたエラーは言います [file].exe exited with code -1073741515

私はQTでもWindowsの専門家でもありませんが、このプロジェクトでは両方を使用することを余儀なくされています(GNU/Linuxでこれを修正する方が簡単だと思います)。 Windows XP、QT Creator 2.0.1を搭載したQTバージョン4.7.0、およびMATLAB R2010Bを使用しています。

コンパイラからの最後の出力は、それが便利である場合に備えて、次のようになります。

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug/MainUI.exe debug/main.o debug/maingui.o debug/matparser.o debug/matutils.o debug/moc_maingui.o -L'c:/Qt/2010.05/qt/lib' -lmingw32 -lqtmaind "-LC:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft" -llibmat -lQtGuid4 -lQtCored4

役に立ちましたか?

解決

私はただ、を使用する簡単なCプログラムの構築をテストしました マットファイルインターフェイスライブラリ 問題なく。例ファイルは次のようになります: matlabroot/examples/eng_mat/matcreat.c. 。使用してコンパイルしています Mingw Windows XP 32ビットマシンで。これが私が使用したメイクファイルです:

# root directory of MATLAB installation
MATLABROOT="/c/Program Files/MATLAB/R2010b"

.PHONY : all clean run

all: matcreat

matcreat:
    gcc ${MATLABROOT}/extern/examples/eng_mat/matcreat.c -o matcreat \
        -I${MATLABROOT}/extern/include \
        -L${MATLABROOT}/extern/lib/win32/microsoft -llibmat -llibmx

clean:
    rm -rf matcreat *.exe *.mat

run:
    # UNIX uses LD_LIBRARY_PATH to find libs at runtime, Windows/MinGW uses PATH
    @PATH=${MATLABROOT}/bin/win32:"${PATH}" ./matcreat

他のヒント

MatlabライブラリはMSVCにコンパイルされていると思われ、MingWで独自のコードをコンパイルしていると言ってから、2つは互換性がないと思います。

見て ミキシングコンパイラのMINGWページ 詳細については。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top