在 C++ 中使用 MATLAB API,matOpen 静默崩溃程序

Using MATLAB API in C++, matOpen crashing program silently

我的问题与 this one 类似,但它已经很老了,由于我(初学者)的声誉,我无法发表评论或投票。 我正在尝试像这样从 Matlab 2017b 编译 matcreat.cpp 文件(使用 g++(x86_64-posix-seh-rev0,由 MinGW-W64 项目构建)8.1.0):

g++ -c -o matcreat.o -I"C:\Program Files\MATLAB\R2017b\extern\include" matcreat.cpp
g++ -o matcreat.exe matcreat.o -L"C:\Program Files\MATLAB\R2017b\extern\lib\win64\mingw64" -llibmat -llibmex -llibmx -llibeng

该程序有一个 main,它在一开始就使用了 printf(甚至在 matlab 的东西之前),但是什么也没有输出,它就终止了。如果我注释掉所有与 MATLAB 相关的函数调用,它会起作用,第一个是 pmat = matOpen(file, "w");.

为什么程序只是无声地崩溃并输出?为什么没有 compiler/linker 错误?任何想法将不胜感激。

在尝试解决 mex 构建过程的内部问题一段时间后,我放弃了这条路线。 Mathworks 故意试图让将它们的功能合并到您自己的代码中变得困难。

对于有同样问题的大家:经过一番研究,我发现this open source project,可以很好地编写MAT文件。