Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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++ 如何在OSX上使用额外模块编译OpenCV?_C++_Xcode_Macos_Opencv_Opencv3.0 - Fatal编程技术网

C++ 如何在OSX上使用额外模块编译OpenCV?

C++ 如何在OSX上使用额外模块编译OpenCV?,c++,xcode,macos,opencv,opencv3.0,C++,Xcode,Macos,Opencv,Opencv3.0,我之前成功编译了OpenCV 3.0,主要包括以下步骤: 下载所有必备的XCode、命令行工具、CMake和OpenCV源代码 通过以下gui配置CMake,构建静态库: 取消选中构建共享库 取消选中BUILD_测试 在CMAKE_OSX_SYSROOT中添加SDK路径(如果有必要),我使用了/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.SDK。 将x

我之前成功编译了OpenCV 3.0,主要包括以下步骤:

下载所有必备的XCode、命令行工具、CMake和OpenCV源代码 通过以下gui配置CMake,构建静态库: 取消选中构建共享库 取消选中BUILD_测试 在CMAKE_OSX_SYSROOT中添加SDK路径(如果有必要),我使用了/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.SDK。 将x86_64添加到我的CMAKE_OSX_架构中,这似乎就是问题所在,我相信我已经遵循了这一步骤 用_1394取消选中 用_FFMPEG取消选中 通过CMake进行配置和生成,然后从CLI进行make和sudo make安装。 仅上述所有措施就可以很好地发挥作用

我现在想用编译OpenCV。根据他们的read me,它应该像在CMake中填写OPENCV_EXTRA_MODULES_路径/MODULES一样简单,然后像往常一样构建

我使用添加的参数遵循上述步骤,构建OpenCV成功,但是,当尝试在程序中使用一个额外的模块时,即cv::ximgproc::createStructuredEdgeDetection,如果有问题,我在编译时会遇到以下错误:

架构x86_64的未定义符号: cv::ximgproc::createStructuredEdgeDetectioncv::String const&,cv::Ptr,引用自: _主音中的主音 ld:未找到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1使用-v查看调用

我已经包括了标题,其中应包括上述内容:

#include <opencv2/ximgproc.hpp>
我是通过XCode进行编译的,我在XCode中为项目设置了额外的头搜索路径/usr/local/include和库搜索路径/usr/local/lib,我是否遗漏了什么

标准的OpenCV功能运行良好


问题可能是什么?我将如何着手解决它?

OpenCV contrib模块构建正确

您只需要将contrib libs添加到依赖项中,在本例中添加:-lopencv_ximgproc

所有可用的lib都可以在/install/folder下找到。
例如,在我的32位vc12中,静态构建位于/install/x86/vc12/staticlib文件夹中。

您是否已将contrib lib添加到依赖项中?剩下的似乎correct@Miki非常感谢你的评论,我错过了。我最初有其他链接器标志-lopencv_calib3d-lopencv_core-lopencv_features2d-lopencv_flann-lopencv_highgui-lopencv_imgcodecs-lopencv_imgproc-lopencv_ml-lopencv_objdetect-lopencv_照片-lopencv_形状-lopencv_缝合-lopencv_superres-lopencv_ts-lopencv视频-lopencv_videostab,但我没有包括-lopencv_ximgproc。编译成功,添加了后者。有没有一种简单的方法可以找到提供的所有包含项?您应该在/install/文件夹下找到所有lib/在my中安装/x86/vc12/staticlibbuild@Miki你帮了我很大的忙,我一直在努力解决这个问题,谢谢你。如果你想写一个简短的答案,我很乐意接受。完成了,很高兴有帮助!