3

I've been googling and trying for days now, trying to figure out how to get 32-bit OpenCV working on OS X Lion, but can just find 64-bit version.

So i have the following questions:

OpenCV libraries come in 32-bit or 64-bit arch, is that correct?

How do I get 32-bit OpenCV working on Lion? I've trying the following ways: - Install OpenCV via MacPorts: nope, MacPorts installs a 64-bit version.BI removed OpenCV and MacPorts.

  • Install OpenCV 2.4.1 via Homebrew, using the following command:

brew install opencv --build32

but looks like they are 64-bit too. Removed OpenCV and Homebrew.

  • Install OpenCV 2.4.1 by myself using standard unix makefiles. Nope, they still look like 64-bit.

I've written "they look like 64-bit" because i have to replace OpenC in a Xcode project made under OS X Snow Leopard, targeted for 32-bit Mac, and I always get tons of errors like:

ld: warning: ignoring file /usr/local/Cellar/opencv/2.4.1/lib/libopencv_calib3d.2.4.1.dylib, file was built for unsupported file format which is not the architecture being linked (i386)

so i suppose that the OpenCV stuff is 64-bit. If i force the project to run in 64-bit, it rubs but doesn't work properly and gets stuck.

Is there a standard way to check if my OpenCV libraries are 64-bit or 32-bit?

Where can i get 32-bit OpenCV?

INElutTabile
  • 866
  • 2
  • 20
  • 38

4 Answers4

8

Solved the problem.

Recap: it is possible to have 32-bit OpenCV libraries on 64-bit Mac OSX Lion.

How?

Step 1: Download OpenCV 2.4.0

Step 2: Download and install CMake.

Step 3: Untar the OpenCV package.

Step 4: Make a separate directory inside the OpenCV package for building

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

(this will force the 32-bit compile)

make -j8
sudo make install

Step 5: Enjoy!

For forther reference please visit Mac OS X OpenCV Port Page

Thanks all for putting me on the right track:

@karlphilip: I tried to do as you suggested, but without the make options the compile phase fails, because the architectures are incoherent.

@hamstergene: MacPorts got stuck after the new installation, maybe I have some remains of the older install :( (strange, i followed the official instrusctions to remove it).

@Adrien: That's what I've done, but i had to merge 2 approaches :)

INElutTabile
  • 866
  • 2
  • 20
  • 38
2

I ve had a hard time configuring OpenCv libraries on a number od different OSs. Turns out that the thing is auto-generating a sample project and then bulding business logic inside it.

See the installation instructions here

2

The web site of the OpenCV project has been significantly upgraded in the last year. A new tutorial section is avaiable, i was able to install OpenCV on my 32-bit core Mac OS Lion.

A very cool tutorial is also available at Sadeep's Tech Blog, covering an interesting range of details.

Hope this helps!

0

Here's something you can try: download OpenCV 2.4 sources and edit the CMakeLists.txt in the root directory. Around line 242 you will see:

# ----------------------------------------------------------------------------
#  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})

below the add_definitions() call, add this one:

 add_definitions(-m32)
karlphillip
  • 92,053
  • 36
  • 243
  • 426