c++ - _cvLoadImage undefined symbol 链接问题

标签 c++ macos opencv deep-learning linker-flags

我正在我的 mac osx 上编译 conv-net (http://conv-net.sourceforge.net/) 深度学习库 opencv 和 c++,但我似乎无法解决这个错误。这似乎是一个链接问题。所有 opencv 库都是为 64 位编译的,我尝试在 cmake 中设置 -m64 标志,但仍然不起作用。

我不知道 _cvLoadImage() 链接到哪个库???我正确链接到正确的库,但无法修复这个错误??????

Undefined symbols for architecture x86_64:
  "_cvLoadImage", referenced from:
      _main in testimg.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [testimg] Error 1
make[1]: *** [CMakeFiles/testimg.dir/all] Error 2

我做了链接器的 -v 输出,它显示了这个......

Linking CXX executable testimg
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.10.0 -o testimg -search_paths_first -headerpad_max_install_names CMakeFiles/testimg.dir/tst/testimg.cpp.o libcvconvnet.a -lopencv_core -lopencv_highgui -lexpat -lopencv_imgproc -lopencv_photo -lopencv_shape -lopencv_features2d -lopencv_ml -lopencv_objdetect -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib/darwin/libclang_rt.osx.a

最佳答案

在opencv 3.1.0中,我无法在/usr/local/lib/libopencv_highgui.dylib中找到丢失的符号,而是在/usr/local/lib/libopencv_imgcodecs中找到.dylib.

因此,将 -lopencv_imgcodecs 添加到您的编译命令中。

关于c++ - _cvLoadImage undefined symbol 链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552217/

相关文章:

macos - 尝试编译 RtAudio 时出现 undefined symbol

c++ - SonarQube.Scanner.MSBuild.exe 是否有详细模式?

python - 调用 Python 3.x 命令的跨平台方式

macos - 无法使用 Homebrew 以图形模式安装 Ettercap

opencv - 如何在OpenCV中保存绘制的矩形?

opencv - 3D物体检测-Opencv

c++ - 从主 C++ 返回 0 后,程序在第二次运行时崩溃

c++ - 类重定义 C++ multiple include

c++ - 读写结构到二进制文件

opencv - cvConvertScale错误