C++ 错误LNK2019:matlab中未解析的外部符号

C++ 错误LNK2019:matlab中未解析的外部符号,c++,matlab,opencv,mex,mixed-programming,C++,Matlab,Opencv,Mex,Mixed Programming,我已经在这两天,并尝试了每一个可能的解决方案,我可以通过搜索引擎找到。但我还是被困在这里 我从下载了一个超级像素实现包 函数在C++中,但为Linux 64位OS生成了MEX文件。我使用的是64位Windows 8,因此我必须为我的系统生成一个mex文件 这些文件已在站点的包中提供。在mex设置并提供适当的openCV路径和环境变量之后,我运行了compile_mex.m代码 mex -IB:\Opencv\opencv\build\include\opencv -c seeds2.cpp m

我已经在这两天,并尝试了每一个可能的解决方案,我可以通过搜索引擎找到。但我还是被困在这里

我从下载了一个超级像素实现包

函数在C++中,但为Linux 64位OS生成了MEX文件。我使用的是64位Windows 8,因此我必须为我的系统生成一个mex文件

这些文件已在站点的包中提供。在mex设置并提供适当的openCV路径和环境变量之后,我运行了compile_mex.m代码

mex -IB:\Opencv\opencv\build\include\opencv -c seeds2.cpp

mex mexSEEDS.cpp -IB:\Opencv\opencv\build\include\opencv seeds2.obj
我得到了下面的错误,我无法找到解决方案

mexSEEDS.obj:错误LNK2019:函数“void”\uuu cdecl SaveImage(unsigned int*,int const&,int const&,class std::basic\u string const&)中引用的未解析外部符号cvSaveImage(?SaveImage@@YAXPEAIAEBH1AEBV?$basic_string@DU?$char_traits@D@性病病毒$allocator@D@2@@std@@@Z)

我没能通过这一关。当我在代码块中执行此操作时,我遇到了相同的错误,即使在按照许多站点/论坛的建议链接库、编译器目录和链接器库和目录之后也是如此。

我得到了答案

  • 找到并打开mexopts.bat
  • 访问此
  • 从<强>设置MATLAB编译C++和MATLAB MEX文件,并与OpenCV Obj/<强> < /LI>链接
  • 编辑mexopts.bat时,在将库添加到LINKFLAGS中,从/build/x64/vc10/lib添加以下库

    core249 and 249d
    flann249 (and the same as above. rest also have the tag 249 and 249d. this is the version number. 2.4.9 in my case)
    highgui
    imageproc
    legacy
    objdetect
    
  • 原因是所有这些都是编译mexseeds.cpp所必需的。但最基本的是前4个。添加后,保存并编译mex文件。在pdf中,库名称将有所不同,因为它是在较旧版本的opencv中创建的