Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.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++ mex错误:无法导出mex功能:未定义符号_C++_Matlab_Mingw_Mex - Fatal编程技术网

C++ mex错误:无法导出mex功能:未定义符号

C++ mex错误:无法导出mex功能:未定义符号,c++,matlab,mingw,mex,C++,Matlab,Mingw,Mex,当我运行的设置功能时,出现以下错误: 我没有mex编译器,所以我用MatlabR2015B的指令安装了MinGW。它看到编译器,但无法编译。我不知道如何解决这个问题 谢谢你的帮助 编辑 我在64位Windows 7上使用Matlab R2015B,安装的附加组件称为“代码> Matlab支持,用于从TDMGCC < /Calp>< /P>中的WINW-W64 C/C++编译器。您可以使用Max MyOffice?CPP(对于任意CPP文件)编译C++、MEX代码吗?)这纯粹是设置mex编译器的问

当我运行的
设置
功能时,出现以下错误:

我没有mex编译器,所以我用MatlabR2015B的指令安装了MinGW。它看到编译器,但无法编译。我不知道如何解决这个问题

谢谢你的帮助

编辑
我在64位Windows 7上使用Matlab R2015B,安装的附加组件称为“代码> Matlab支持,用于从TDMGCC < /Calp>< /P>中的WINW-W64 C/C++编译器。您可以使用Max MyOffice?CPP(对于任意CPP文件)编译C++、MEX代码吗?)这纯粹是设置mex编译器的问题吗?或者它涉及到与MatConvNet安装脚本的交互吗?@MatthewGunn我记得以前使用过安装函数(可能是使用不同的编译器),所以可能是关于mingw安装的。让我试试你的建议。我尝试使用一个空的.cpp文件,同样的错误:
无法导出mexFunction:symbol not defined collect2.exe:error:ld返回了1个退出状态
类似这样的情况如何:(1)获取一些真正的源代码进行编译,例如
copyfile(fullfile(matlabroot,'extern','examples','mex','yprime.c','f')
then(2)
mex yprime.c
这应该会给出“mex已成功完成”。请尝试一些在源代码中正确定义mex函数的工作mex源代码。我认为,当编译的cpp源代码不包含函数“void mexFunction(int nlhs,mxArray*plhs[],int nrhs,const mxArray*prhs[])时,通常会发生错误所有的cpp文件都需要这样才能得到mex'ed吗?总之,我通过安装(并设置为默认C++编译器)微软Windows SDK 7.1(C++)来解决我的问题。但让我试试你的建议。是的,这两种编译器都可以使用。因此,如果我将mexFunction添加到MatConvNet的源代码中,它可能会工作。无论如何,我不想把事情搞得更糟:)但如果这是解决办法,请把它作为答案贴出来。谢谢你的帮助!
>> setup
Warning: VL_NNCONV() does not seem to be compiled. Trying to compile it now. 
> In setup (line 14) 
Building with 'MinGW64 Compiler (C++)'.
Error using mex
Cannot export mexFunction: symbol not defined
collect2.exe: error: ld returned 1 exit status


Error in vl_compilenn>mex_compile (line 312)
  mex(mopts{:}) ;

Error in vl_compilenn (line 270)
obj_files = mex_compile(opts, cpp_src, bld_dir, mex_opts);

Error in setup (line 15)
  vl_compilenn('enableGpu', opts.useGpu, 'verbose', opts.verbose) ;