添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hello, Here blow is the result after running vl_compilenn , Sorry for the fact that I don't know how to translate it into English;
I guess it may result from the lib (X64) confilct with the Visual Studio Project (X86), but I don't know how come it happened
All the commands were executed according the official website,that is to say:

mex -setup C++ ;
addpath(genpath(pwd));
vl_compilenn;

错误使用 mex
正在创建库 C:\Users\HelloWorld\Desktop\super\matconvnet-master\matlab\mex\vl_nnconv.lib 和对象 C:\Users\HelloWorld\Desktop\super\matconvnet-master\matlab\mex\vl_nnconv.exp
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetNumberOfDimensions_730,该符号在函数 "bool __cdecl vlmxIsMatrix(struct mxArray_tag const *,int,int)" (?vlmxIsMatrix@@YA_NPBUmxArray_tag@ @hh @Z) 中被引用
datamex.obj : error LNK2001: 无法解析的外部符号 _mxGetNumberOfDimensions_730
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetDimensions_730,该符号在函数 "bool __cdecl vlmxIsMatrix(struct mxArray_tag const *,int,int)" (?vlmxIsMatrix@@YA_NPBUmxArray_tag@ @hh @Z) 中被引用
datamex.obj : error LNK2001: 无法解析的外部符号 _mxGetDimensions_730
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetM,该符号在函数 "bool __cdecl vlmxIsMatrix(struct mxArray_tag const *,int,int)" (?vlmxIsMatrix@@YA_NPBUmxArray_tag@ @hh @Z) 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetClassID,该符号在函数 "bool __cdecl vlmxIsOfClass(struct mxArray_tag const *,enum mxClassID)" (?vlmxIsOfClass@@YA_NPBUmxArray_tag@@W4mxClassID@@ @z ) 中被引用
datamex.obj : error LNK2001: 无法解析的外部符号 _mxGetClassID
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxIsNumeric,该符号在函数 "bool __cdecl vlmxIsPlain(struct mxArray_tag const *)" (?vlmxIsPlain@@YA_NPBUmxArray_tag@@ @z ) 中被引用
datamex.obj : error LNK2001: 无法解析的外部符号 _mxIsNumeric
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxIsChar,该符号在函数 "int __cdecl vlmxIsString(struct mxArray_tag const *,int)" (?vlmxIsString@@YAHPBUmxArray_tag@ @h @Z) 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxIsComplex,该符号在函数 "bool __cdecl vlmxIsPlain(struct mxArray_tag const *)" (?vlmxIsPlain@@YA_NPBUmxArray_tag@@ @z ) 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxIsSparse,该符号在函数 "bool __cdecl vlmxIsMatrix(struct mxArray_tag const *,int,int)" (?vlmxIsMatrix@@YA_NPBUmxArray_tag@ @hh @Z) 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetNumberOfElements,该符号在函数 "bool __cdecl vlmxIsMatrix(struct mxArray_tag const *,int,int)" (?vlmxIsMatrix@@YA_NPBUmxArray_tag@ @hh @Z) 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetPr,该符号在函数 _mexFunction 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetN,该符号在函数 "bool __cdecl vlmxIsMatrix(struct mxArray_tag const *,int,int)" (?vlmxIsMatrix@@YA_NPBUmxArray_tag@ @hh @Z) 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxCreateNumericMatrix_730,该符号在函数 _mexFunction 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mxGetString_730,该符号在函数 "int __cdecl vlmxNextOption(struct mxArray_tag const * * const,int,struct VLMXOption const *,int *,struct mxArray_tag const * *)"
(?vlmxNextOption@@YAHQAPBUmxArray_tag@@HPBUVLMXOption@@PAHPAPBU1@ @z ) 中被引用
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mexErrMsgIdAndTxt,该符号在函数 "void __cdecl vlmxErrorHelper(bool,enum VLMXErrorCode,char const *,char *)" (?vlmxErrorHelper@@YAX_NW4VLMXErrorCode@@PBDPAD@Z) 中
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mexWarnMsgIdAndTxt,该符号在函数 "void __cdecl vlmxErrorHelper(bool,enum VLMXErrorCode,char const *,char *)" (?vlmxErrorHelper@@YAX_NW4VLMXErrorCode@@PBDPAD@Z)
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mexPrintf,该符号在函数 _mexFunction 中被引用
datamex.obj : error LNK2001: 无法解析的外部符号 _mexPrintf
imread_gdiplus.obj : error LNK2001: 无法解析的外部符号 _mexPrintf
vl_nnconv.obj : error LNK2019: 无法解析的外部符号 _mexAtExit,该符号在函数 _mexFunction 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mxMalloc,该符号在函数 "private: enum vl::ErrorCode __thiscall vl::MexTensor::initHelper(enum vl::DeviceType,enum vl::DataType,class vl::TensorShape const &,bool)"
(?initHelper@MexTensor@vl@ @aae ?AW4ErrorCode@2@W4DeviceType@2@W4DataType@2@ABVTensorShape@2@_N@Z) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mxGetData,该符号在函数 "public: enum vl::ErrorCode __thiscall vl::MexTensor::init(struct mxArray_tag const *)"
(?init@MexTensor@vl@ @QAE ?AW4ErrorCode@2@PBUmxArray_tag@@ @z ) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mxSetData,该符号在函数 "private: enum vl::ErrorCode __thiscall vl::MexTensor::initHelper(enum vl::DeviceType,enum vl::DataType,class vl::TensorShape const
&,bool)" (?initHelper@MexTensor@vl@ @aae ?AW4ErrorCode@2@W4DeviceType@2@W4DataType@2@ABVTensorShape@2@_N@Z) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mxSetDimensions_730,该符号在函数 "private: enum vl::ErrorCode __thiscall vl::MexTensor::initHelper(enum vl::DeviceType,enum vl::DataType,class vl::TensorShape
const &,bool)" (?initHelper@MexTensor@vl@ @aae ?AW4ErrorCode@2@W4DeviceType@2@W4DataType@2@ABVTensorShape@2@_N@Z) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mxDestroyArray,该符号在函数 "public: __thiscall vl::MexTensor::~MexTensor(void)" (??1MexTensor@vl@ @QAE @XZ) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mxCreateNumericArray_730,该符号在函数 "private: enum vl::ErrorCode __thiscall vl::MexTensor::initHelper(enum vl::DeviceType,enum vl::DataType,class
vl::TensorShape const &,bool)" (?initHelper@MexTensor@vl@ @aae ?AW4ErrorCode@2@W4DeviceType@2@W4DataType@2@ABVTensorShape@2@_N@Z) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mxDuplicateArray,该符号在函数 "public: struct mxArray_tag * __thiscall vl::MexTensor::relinquish(void)" (?relinquish@MexTensor@vl@@QAEPAUmxArray_tag@ @xz ) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mexErrMsgTxt,该符号在函数 "public: enum vl::ErrorCode __thiscall vl::MexTensor::init(struct mxArray_tag const *)"
(?init@MexTensor@vl@ @QAE ?AW4ErrorCode@2@PBUmxArray_tag@@ @z ) 中被引用
datamex.obj : error LNK2019: 无法解析的外部符号 _mexMakeArrayPersistent,该符号在函数 "public: void __thiscall vl::MexTensor::makePersistent(void)" (?makePersistent@MexTensor@vl@@QAEXXZ) 中被引用
nnconv.obj : error LNK2019: 无法解析的外部符号 _dgemm,该符号在函数 "public: enum vl::ErrorCode __thiscall ConvolutionBackward<0,2>::operator()(class vl::nn::Convolution &,class vl::Tensor &,class vl::Tensor
&,class vl::Tensor &,class vl::Tensor const &,class vl::Tensor const &,class vl::Tensor const &)" (??R?$ConvolutionBackward@$0A@$01@ @QAE ?AW4ErrorCode@vl@@AAVConvolution@nn@2@AAVTensor@2@11ABV52@22@Z) 中被引
nnfullyconnected.obj : error LNK2001: 无法解析的外部符号 _dgemm
nnsubsample.obj : error LNK2001: 无法解析的外部符号 _dgemm
nnbias.obj : error LNK2001: 无法解析的外部符号 _dgemm
nnconv.obj : error LNK2019: 无法解析的外部符号 _dgemv,该符号在函数 "public: enum vl::ErrorCode __thiscall ConvolutionBackward<0,2>::operator()(class vl::nn::Convolution &,class vl::Tensor &,class vl::Tensor
&,class vl::Tensor &,class vl::Tensor const &,class vl::Tensor const &,class vl::Tensor const &)" (??R?$ConvolutionBackward@$0A@$01@ @QAE ?AW4ErrorCode@vl@@AAVConvolution@nn@2@AAVTensor@2@11ABV52@22@Z) 中被引
nnfullyconnected.obj : error LNK2001: 无法解析的外部符号 _dgemv
nnsubsample.obj : error LNK2001: 无法解析的外部符号 _dgemv
nnbias.obj : error LNK2001: 无法解析的外部符号 _dgemv
nnconv.obj : error LNK2019: 无法解析的外部符号 _sgemm,该符号在函数 "public: enum vl::ErrorCode __thiscall ConvolutionBackward<0,1>::operator()(class vl::nn::Convolution &,class vl::Tensor &,class vl::Tensor
&,class vl::Tensor &,class vl::Tensor const &,class vl::Tensor const &,class vl::Tensor const &)" (??R?$ConvolutionBackward@$0A@$00@ @QAE ?AW4ErrorCode@vl@@AAVConvolution@nn@2@AAVTensor@2@11ABV52@22@Z) 中被引
nnfullyconnected.obj : error LNK2001: 无法解析的外部符号 _sgemm
nnsubsample.obj : error LNK2001: 无法解析的外部符号 _sgemm
nnbias.obj : error LNK2001: 无法解析的外部符号 _sgemm
nnconv.obj : error LNK2019: 无法解析的外部符号 _sgemv,该符号在函数 "public: enum vl::ErrorCode __thiscall ConvolutionBackward<0,1>::operator()(class vl::nn::Convolution &,class vl::Tensor &,class vl::Tensor
&,class vl::Tensor &,class vl::Tensor const &,class vl::Tensor const &,class vl::Tensor const &)" (??R?$ConvolutionBackward@$0A@$00@ @QAE ?AW4ErrorCode@vl@@AAVConvolution@nn@2@AAVTensor@2@11ABV52@22@Z) 中被引
nnfullyconnected.obj : error LNK2001: 无法解析的外部符号 _sgemv
nnsubsample.obj : error LNK2001: 无法解析的外部符号 _sgemv
nnbias.obj : error LNK2001: 无法解析的外部符号 _sgemv
nnbias.obj : error LNK2019: 无法解析的外部符号 _daxpy,该符号在函数 "public: enum vl::ErrorCode __thiscall BiasBackward<0,2>::operator()(class vl::nn::Bias &,class vl::Tensor &,double,class vl::Tensor
&,double,double,double,class vl::Tensor const &)" (??R?$BiasBackward@$0A@$01@ @QAE ?AW4ErrorCode@vl@@AAVBias@nn@2@AAVTensor@2@N1NNNABV52@ @z ) 中被引用
nnbias.obj : error LNK2019: 无法解析的外部符号 _saxpy,该符号在函数 "public: enum vl::ErrorCode __thiscall BiasBackward<0,1>::operator()(class vl::nn::Bias &,class vl::Tensor &,double,class vl::Tensor
&,double,double,double,class vl::Tensor const &)" (??R?$BiasBackward@$0A@$00@ @QAE ?AW4ErrorCode@vl@@AAVBias@nn@2@AAVTensor@2@N1NNNABV52@ @z ) 中被引用
D:\Program Files\MATLAB\R2015b\extern\lib\win64\microsoft\libmwblas.lib : warning LNK4272:库计算机类型“x64”与目标计算机类型“X86”冲突
D:\Program Files\MATLAB\R2015b\extern\lib\win64\microsoft\libmx.lib : warning LNK4272:库计算机类型“x64”与目标计算机类型“X86”冲突
D:\Program Files\MATLAB\R2015b\extern\lib\win64\microsoft\libmex.lib : warning LNK4272:库计算机类型“x64”与目标计算机类型“X86”冲突
D:\Program Files\MATLAB\R2015b\extern\lib\win64\microsoft\libmat.lib : warning LNK4272:库计算机类型“x64”与目标计算机类型“X86”冲突
C:\Users\HelloWorld\Desktop\super\matconvnet-master\matlab\mex\vl_nnconv.mexw32 : fatal error LNK1120: 32 个无法解析的外部命令

出错 vl_compilenn>mex_link (line 627)
mex(args{:}) ;

Nice for your reply , now I've used the R2015b_glnxa64 in Ubuntu 16.04 , and error during compiling is

_"vl_imreadjpeg.cpp:(.text+0x5f4): undefined reference to
`__warn_memset_zero_len'
collect2: error: ld returned 1 exit status

Error in vl_compilenn>mex_link (line 627)
mex(args{:}) ;

Error in vl_compilenn (line 500)
mex_link(opts, objs, flags.mex_dir, flags) ;"_

And the gcc used is gcc-4.7.4 ,could you help to solve this problem

Meanwihle , If I change to use gcc-5 , MEX completed successfully;

Warning: You are using gcc version '5.4.0'. The version of gcc
is not supported. The version currently supported with MEX is
'4.7.x'.

But when I use the demo

net = load('/home/shine/Downloads/imagenet-vgg-m-2048.mat');

im = imread('/home/shine/Downloads/matconvnet-master/examples/peppers.png');

im_ = single(im);

im_ = imresize(im_,net.meta.normalization.imageSize(1:2));

im_ = im_ - net.meta.normalization.averageImage;

res = vl_simplenn(net,im_);

y = res(end).x;

x = gather(res(end).x);

score = squeeze(gather(res(end).x));

[bestScore, best] = max(score);

figure(1);

imshow(im);

title(sprintf('%s %d,%.3f',net.meta.classes.description{best},best,bestScore));`

the error returned to be
/home/shine/Downloads/matconvnet-master/matlab/vl_nnconv.m

Error in vl_simplenn (line 300)
res(i+1).x = vl_nnconv(res(i).x, l.weights{1},
l.weights{2}, ...

Error in recogn (line 7)
res = vl_simplenn(net,im_);

@Firststep2014 I advice that you can copy these mex_opts into the \bin\win64\mexopts folder.
It worked for windows operating system.

msvcpp2015.zip