OS X Lion 上的 32 位 OpenCV?可能

32-bit OpenCV on OS X Lion? Possible?

本文关键字:OpenCV 可能 Lion 上的 OS      更新时间:2023-10-16

我已经在谷歌上搜索并尝试了好几天,试图弄清楚如何让 32 位 OpenCV 在 OS X Lion 上运行,但只能找到 64 位版本。

所以我有以下问题:

OpenCV库有32位或64位架构,对吗?

如何让 32 位 OpenCV 在 Lion 上工作?我尝试了以下方法: - 通过MacPorts安装OpenCV:不,MacPorts安装64位版本。BI删除了OpenCV和MacPorts。

  • 使用以下命令通过Homebrew安装OpenCV 2.4.1:

brew install opencv --build32

但看起来它们也是 64 位的。删除了OpenCV和Homebrew。

  • 使用标准的 unix makefile 自行安装 OpenCV 2.4.1。不,它们看起来仍然像 64 位。

我写了"它们看起来像64位",因为我必须在OS X Snow Leopard下制作的Xcode项目中替换OpenC,该项目针对32位Mac,我总是收到大量错误,例如:

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

所以我认为OpenCV的东西是64位的。如果我强制项目以 64 位运行,它会摩擦但无法正常工作并卡住。

有没有一种标准方法来检查我的 OpenCV 库是 64 位还是 32 位?

我在哪里可以获得 32 位 OpenCV?

解决了问题。

回顾:在64位Mac OSX Lion上可以拥有32位OpenCV库。

如何?

第 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 步:享受!

有关参考,请访问Mac OS X OpenCV Port页面

谢谢大家让我走上正轨:

@karlphilip:我尝试按照您的建议进行操作,但是如果没有make选项,编译阶段将失败,因为体系结构不连贯。

@hamstergene:MacPorts在新安装后卡住了,也许我有一些旧安装:(的残留物(奇怪,我按照官方的提示将其删除)。

@Adrien:这就是我所做的,但我不得不合并 2 种方法:)

我很难在许多不同的操作系统上配置 OpenCv 库。事实证明,事情正在自动生成一个示例项目,然后在其中构建业务逻辑。

请参阅此处的安装说明

OpenCV项目的网站在去年进行了重大升级。一个新的教程部分是可用的,我能够在我的32位核心Mac OS Lion上安装OpenCV。

Sadeep的技术博客上也提供了一个非常酷的教程,涵盖了一系列有趣的细节。

希望这有帮助!

您可以尝试以下方法:下载OpenCV 2.4源代码并在根目录中编辑CMakeLists.txt。在第 242 行周围,您将看到:

# ----------------------------------------------------------------------------
#  Path for build/platform -specific headers
# ----------------------------------------------------------------------------
set(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
add_definitions(-DHAVE_CVCONFIG_H)
ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR})

add_definitions()调用下方,添加以下内容:

 add_definitions(-m32)