Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用G+构建问题+;关于MATLAB_C++_Matlab_Mex - Fatal编程技术网

C++ 使用G+构建问题+;关于MATLAB

C++ 使用G+构建问题+;关于MATLAB,c++,matlab,mex,C++,Matlab,Mex,我对MATLAB有点陌生,但目前正在尝试使用G++(版本6.3)作为编译器构建MEX文件。我犯了这个错误 MEX completed successfully. Building with 'g++'. Error using mex /disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:14:13: error: conflicting declaration ‘typedef int mwSize’ In file included f

我对MATLAB有点陌生,但目前正在尝试使用G++(版本6.3)作为编译器构建MEX文件。我犯了这个错误

MEX completed successfully.
Building with 'g++'.
Error using mex
/disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:14:13: error: conflicting declaration ‘typedef
int mwSize’
In file included from /usr/local/MATLAB/R2016a/extern/include/matrix.h:25:0,
                 from /usr/local/MATLAB/R2016a/extern/include/mex.h:51,
                 from /disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:9:
/usr/local/MATLAB/R2016a/extern/include/tmwtypes.h:795:19: error: ‘mwSize’ has a previous
declaration as ‘typedef size_t mwSize’
/disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:15:13: error: conflicting declaration ‘typedef
int mwIndex’
In file included from /usr/local/MATLAB/R2016a/extern/include/matrix.h:25:0,
                 from /usr/local/MATLAB/R2016a/extern/include/mex.h:51,
                 from /disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:9:
/usr/local/MATLAB/R2016a/extern/include/tmwtypes.h:796:19: error: ‘mwIndex’ has a previous
declaration as ‘typedef size_t mwIndex’


Error in make_mex (line 20)
mex ./external/libtrws/trwsMex.cpp -largeArrayDims CXXFLAGS="\$CXXFLAGS -std=c++0x -fpermissive"
-outdir build
我不明白。为什么
/usr/local/MATLAB/R2016a/extern/include/tmwtypes.h
的定义与
/usr/local/MATLAB/R2016a/extern/include/mex.h
冲突?它们不是MATLAB附带的预定义库吗(这意味着它们应该可以正常工作?)


顺便说一下,
/disks/local/sceneflow2//external/libtrws/trwsMex.cpp
有一行,其中包括前面提到的
mex.h
错误消息必须阻塞(对于两个不同的错误),让我们只看第一个。我把它分成三行:

第一行表示编译器在
trwsMex.cpp
文件的第14行找到了
mwSize
的声明,其中显示
typedef int mwSize

最后一行说,这个
mwSize
已经在MATLAB附带的
tmwtypes.h
标题中定义

第二行表示此头文件包含在
matrix.h
中,该头文件包含在
mex.h
中,该头文件包含在第9行的
trwsMex.cpp



因此,为了修复错误,不要在MEX文件源代码中定义
mwSize
mwIndex
,它们是由MATLAB的头文件定义的。

错误消息必须是块(对于两个不同的错误),让我们只看第一个错误。我把它分成三行:

第一行表示编译器在
trwsMex.cpp
文件的第14行找到了
mwSize
的声明,其中显示
typedef int mwSize

最后一行说,这个
mwSize
已经在MATLAB附带的
tmwtypes.h
标题中定义

第二行表示此头文件包含在
matrix.h
中,该头文件包含在
mex.h
中,该头文件包含在第9行的
trwsMex.cpp


因此,为了修复错误,不要在MEX文件源代码中定义
mwSize
mwIndex
,它们是由MATLAB的标题定义的

/disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:14:13: error: conflicting declaration
‘typedef int mwSize’

In file included from /usr/local/MATLAB/R2016a/extern/include/matrix.h:25:0,
                 from /usr/local/MATLAB/R2016a/extern/include/mex.h:51,
                 from /disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:9:

/usr/local/MATLAB/R2016a/extern/include/tmwtypes.h:795:19: error: ‘mwSize’ has a previous
declaration as ‘typedef size_t mwSize’