【问题标题】:XCode 4 & OpenCV LibrariesXCode 4 和 OpenCV 库
【发布时间】:2012-06-26 14:16:53
【问题描述】:

我已经在谷歌上搜索并尝试解决我的问题好几天了,所以我在这里问我的第一个问题。

我有一台装有 Lion (1.7.4)、Xcode 4 的 MacBook。 我需要使用 Leopard 和 Xcode 3 开发 C++ 应用程序。

该应用程序带有自己的 OpenCV.framework,并且是为 32 位架构制作的(如图 1 所示)

我已经尝试让它在 Xcode 3 上运行,它工作得很好,不需要安装 OpenCV 或其他东西(那是因为 OpenCV.framework 包含在项目中,对吧?)。

Xcode 4 上它不起作用。这就是我尝试过的:

  • “按原样”运行:即使 OpenCV.framework 位于应用程序目录中,我也会收到以下错误:

dyld:库未加载: @executable_path/../Frameworks/OpenCV.framework/Versions/A/OpenCV
参考自: /Users/fabrizioborgia/Library/Developer/Xcode/DerivedData/suiviGUI-awhilvjpoqatfdansnpqcexpnxaw/Build/Products/Debug/suiviGUI.app/Contents/MacOS/suiviGUI 原因:找不到图片

  • 删除 OpenCV.framework,通过 MacPorts 安装 OpenCV 并链接库。不,这些库是 64 位的,而我的程序是 32 位。删除了 OpenCV 和 MacPorts。

  • 删除 OpenCV.framework,通过 Homebrew (brew install opencv --build32) 安装 32 位 OpenCV 并链接库。不,我收到以下错误,所以我假设这些库仍然是 64 位的。对?删除了 OpenCV 和 Homebrew。

ld:警告:忽略文件 /usr/local/Cellar/opencv/2.4.1/lib/libopencv_calib3d.2.4.1.dylib,文件 是为不受支持的文件格式构建的,这不是架构 正在链接 (i386)

  • 删除 OpenCV.framework,我自己安装 OpenCV 2.4.1(使用 make 和其他东西)并链接项目中的库。不,如果我在 32 位架构上运行程序,它会告诉我这些库不适用于 32 位架构。

无论如何,如果我尝试在 64 位上运行它,编译成功但程序无法正常运行。

伙计们,真的,我没有想法,也许我走错了方向,也许我只需要找到另一个 OpenCV.framework 或者我缺少一些链接设置,并且程序看不到框架。

有人可以帮忙吗?

【问题讨论】:

  • OpenCV.framework 在你的文件系统中的什么位置?
  • 它在应用程序目录中。
  • 哪个应用目录?
  • 主目录(包含 .xcodeproj 文件和其他子目录的目录)还包含 OpenCV.framework(参见picture)。

标签: c++ opencv xcode4 osx-lion homebrew


【解决方案1】:

解决了这个问题。 我应用了某种“divide et impera 方法”,我在 SO 上提出了一个新问题,你可以在这里找到它:32-bit OpenCV on OS X Lion? Possible? 我发现 MacPorts 和 Homebrew 和 Cmake 方法默认安装本机架构(64 -bit 在我的情况下)OpenCV 库,我需要 32 位,所以我按照以下步骤操作:

第 1 步:下载 OpenCV 2.4.0

第 2 步:下载并安装 CMake。

第 3 步:解压 OpenCV 包。

第 4 步:在 OpenCV 包中创建一个单独的目录用于构建

mkdir build
cd build
cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 -D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32 ..

(这将强制 32 位编译)

make -j8
sudo make install

第 5 步:使用“Link Binary to Libraries”构建阶段链接 Xcode 项目中的全新库。

第 6 步:点击“运行”:)

【讨论】:

  • xcode 生成 opencv2/opencv.hpp 未找到异常,当我尝试导入它时。我该如何解决?
  • 你能告诉我更多细节吗? 1)你遵循了哪个程序 2)关于你的系统和你的 XCode 3)关于你的项目的一些事情
【解决方案2】:

我建议您使用 XCode 4 (tutorial) 在 Lion 中使用 OpenCV(如果还没有的话)。使用链接教程中的示例对其进行测试。一旦成功,然后从项目中复制您无法使用的类。

换句话说,放弃旧项目并从工作项目基础重新构建它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 2013-07-15
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多