简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件

简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件,c++,exception,mex,C++,Exception,Mex,简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件中,我遇到了由以下try/catch引起的问题: try { // You can tell which com port to use by checking windows settings under hardware g

简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件中,我遇到了由以下try/catch引起的问题:

try
{
    // You can tell which com port to use by checking windows settings under hardware
    glove = new CyberGlove(portName, (int) *baudRate);  // baudrate 115200                                                

    /* Return CyberGlove object */
    mxArray* result = (mxArray*) mxMalloc(sizeof(CyberGlove));
    *reinterpret_cast<CyberGlove*>(result) = *glove;
    plhs[0] = result;
}
catch(std::runtime_error err)
{
    std::cout << "Error: " << err.what() << std::endl;
}      

delete glove; 

<> P>我不认为它与网络手套的东西有着特殊的关系,就像我对C++的知识缺乏以及如何使用异常一样。

< p>你需要<代码>包含< <代码> >哪里>代码> STD::RunTimeOrthys。我不知道为什么还没有包括在内,但问题解决了。现在我只想知道为什么它不能链接…考虑把手套放在智能指针中。如果你有一个例外,它永远不会被删除,顺便说一下,在C++中通过const引用捕获异常是个好主意。例如,
catch(const std::runtime\u error&err)
InitCyberGlove.cpp: In function ‘void mexFunction(int, mxArray**, int, const mxArray**)’:
InitCyberGlove.cpp:43:11: error: expected type-specifier
InitCyberGlove.cpp:43:30: error: expected unqualified-id before ‘err’
InitCyberGlove.cpp:43:30: error: expected ‘)’ before ‘err’
InitCyberGlove.cpp:43:30: error: expected ‘{’ before ‘err’
InitCyberGlove.cpp:43:30: error: ‘err’ was not declared in this scope
InitCyberGlove.cpp:43:33: error: expected ‘;’ before ‘)’ token