我之前在this guide之后成功编译了OpenCV 3.0,它基本上包含以下步骤:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
)。 make
和sudo make install
。以上所有这一切都很好。
我现在正在寻找使用the extra modules编译OpenCV的方法。根据他们的读物,它应该像在CMake中填写OPENCV_EXTRA_MODULES_PATH
到<opencv_contrib>/modules
然后照常构建一样简单。
我按照上面列出的步骤添加了参数并构建了OpenCV成功,但是,当尝试使用程序中的一个额外模块(即cv::ximgproc::createStructuredEdgeDetection
时,如果重要),我就是编译时出现以下错误:
架构x86_64的未定义符号:
"cv::ximgproc::createStructuredEdgeDetection(cv::String const&, cv::Ptr<cv::ximgproc::RFFeatureGetter const>)"
,引自:
_main in main.o
ld:找不到架构x86_64的符号
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我已经包含了应包含以上内容的标题:
#include <opencv2/ximgproc.hpp>
我通过XCode进行编译,我为项目设置了/usr/local/include
的额外标题搜索路径和/usr/local/lib
的库搜索路径,我在这里遗漏了一些东西?
标准OpenCV功能正常。
可能是什么问题,我将如何解决它?
答案 0 :(得分:4)
OpenCV contrib模块构建正确。
您只需要将contrib lib添加到依赖项中,在这种情况下添加:-lopencv_ximgproc
。
可以在<OPENCV_DIR>/install/
文件夹下找到所有可用的库。
例如。在我的32位vc12静态版本中,在<OPENCV_DIR>/install/x86/vc12/staticlib
文件夹中。