4

我在 mac 10.7.5 上,使用 xcode 4.6.2 并使用 OpenCV 2.4.3 库。我在终端中完成了使用 cmake 文件制作构建目录的过程并进行了下载。

.dylib在 Xcode 中添加了文件并更改了头文件路径,将 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在项目中添加了,所以我不知道它还需要什么。有什么想法吗?

4

1 回答 1

2

如果您的“制作后端”是 Cmake,您应该坚持使用它。Xcode 中的本地配置更改可以“秘密地”在重新运行 cmake 时被覆盖(例如,在您对其进行更改之后发生)创建奇怪的构建错误并迫使您记住您所做的所有手动更改。

您的问题似乎是生成的项目似乎不知道在哪里寻找opencv。

假设您使用 macports 安装了 opencv,您应该添加一行说

link_directories(/opt/local/lib) 

到您的 CMakeLists.txt。(如果您使用 brew 安装它,或者手动编译它,只需替换/opt/local/libfor/usr/local/lib或已编译库的路径)

还要确保链接到opencv_calib3d而不是opencv_calib3d.2.4.3(除非您有非常特殊的原因绕过它,但这通常意味着设置中的其他东西很奇怪:))

您可能已经知道的最终指针:由于您已经在使用 Cmake,您应该在 Cmake 中使用 TARGET_LINK_LIBRARIES(...) 添加要链接的库,而不是在 Xcode 中手动添加它们(参考我之前的论点)。

于 2013-07-16T22:02:39.860 回答