Descargar y descomprimir OpenCV 2.3.1a:
curl -L -O http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2 tar xzvpf OpenCV-2.3.1a.tar.bz2
Después configurar y compilarlo:
cd OpenCV-2.3.1 mkdir build cd build cmake -G "Unix Makefiles" .. make sudo make install
Puedes usar diferentes opciones al ejecutar cmake
:
- -D BUILD_EXAMPLES=ON -> Compilar los programas de ejemplo.
- -D BUILD_TESTS=OFF -> Para no compilar los tests.
- -D BUILD_NEW_PYTHON_SUPPORT=OFF -> Para no compilar el soporte para Python.
- -D WITH_CARBON=ON -> (sobre todo para Leopard e anteriores) Para usar Carbon en vez de Cocoa (desde la versión r2909).
- -D WITH_QUICKTIME=ON -> (sobre todo para Leopard e anteriores) Para usar QuickTime para la E/S de Video en vez de QTKit (desde la versión r2924). Si usas Snow Leopard y necesitas usar Carbon y QuickTime, también hay que especificar -D CMAKE_OSX_ARCHITECTURES=i386, -D CMAKE_C_FLAGS=-m32 y -D CMAKE_CXX_FLAGS=-m32.
Si no tienes instalado cmake puedes descargarte una “binary distribution” de cmake.org. Por ejemplo http://www.cmake.org/files/v2.8/cmake-2.8.7-Darwin64-universal.dmg.
Puedes compilar OpenCV para una arquitectura específica mediante CMAKE_OSX_ARCHITECTURES
con estos valores:
i386 x86_64 ppc ppc64
Por ejemplo:
cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 ..
Para crear un “universal build” usar tanto i386 como ppc:
cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 ppc ..
Si quieres usar una arquitectura de 32 bits es obligatorio añadir -m32
a los flags de C
y CXX
. Si no lo haces te puede aparecer el siguiente warning al usar la librería:
created and used with differing settings of '-m32'
Para solucionar este problema añadir -m32
a CMAKE_C_FLAGS
y CMAKE_CXX_FLAGS
:
cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 -D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32 ..
cmake -G “Unix Makefiles” -D CMAKE_OSX_ARCHITECTURES=i386 ..
results an error :
” CMake Error at CMakeLists.txt:69 (message):
CMake fails to deterimine the bitness of target platform.
Please check your CMake and compiler installation. If you are crosscompiling then ensure that your CMake toolchain file correctly sets the compiler details. ”
I’m using opencv-2.4.2
Any idea ?!
Use this option to specify 32 bits:
-D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32
Aha, thank you
Another question, I’m using opencv-2.4.2 for IOS
so can I write:
“cmake -G “Unix Makefiles” -D CMAKE_IOS_ARCHITECTURES=armv7 ..”
it also generated the same error !
any idea?
I think OpenCV 2.4.2 has a different way to compile for iOS. You can also download a prebuilt framework here http://sourceforge.net/projects/opencvlibrary/files/opencv-ios/2.4.2/opencv2.framework.zip/download.
Yes, I finally (after 2 weeks) realized that using this prebuilt framework is the safe way.
Just a hint to others.
Thank you