我在Mac 10.7.5上,使用xcode 4.6.2并使用OpenCV 2.4.3库。我在终端中完成了使用cmake文件制作构建目录的过程并进行了下载。
我在Xcode中添加了.dylib
文件并更改了标题路径,将C ++库更改为libstdc ++,但是当我编译时出现了这个错误:
ld: library not found for -lopencv_calib3d.2.4.3
clang: error: linker command failed with exit code 1
我在项目中添加了libopencv_calib3d.2.4.3.dylib
所以我不知道它还需要什么。任何想法?
答案 0 :(得分:2)
如果你的“后端”是Cmake,你应该坚持使用它。当重新运行cmake时(例如,在对其进行更改之后发生),Xcode中的本地配置更改可能会被“秘密”覆盖,从而产生奇怪的构建错误并迫使您记住所做的所有手动更改。
您的问题似乎是生成的项目似乎不知道在哪里查找opencv。
假设你使用macports安装了opencv,你应该添加一行
link_directories(/opt/local/lib)
到你的CMakeLists.txt。 (如果您使用brew安装它,或者手动编译它只需替换/opt/local/lib
/usr/local/lib
或编译库的路径
还要确保链接opencv_calib3d
而不是opencv_calib3d.2.4.3
(除非你有一个非常特别的理由绕过这个,但这通常意味着设置中的其他东西很奇怪:))
您可能已经知道的最终指针:由于您已经在使用Cmake,因此您应该使用Cmake中的TARGET_LINK_LIBRARIES(...)添加要链接的库,而不是在Xcode中手动添加它们(参考我之前的参数)。