2011-03-09 13 views
6

Intentando compilar opencv en mi Mac desde el código fuente."Error de segmentación" durante "importar cv" en Mac OS

He CMakeCache.txt siguiente: http://pastebin.com/KqPHjBx0

hago ccmake .., pulse c, entonces g. de lo que gano sudo make -j8: http://pastebin.com/cJyr1cEd

de lo que gano sudo make install: http://pastebin.com/W77syYBj

Y que hago import cv en Python y sale "Faul Segmentación" con este StackTrace: http://pastebin.com/gegYAK1u

no lo hago sé lo que podría ser útil para ayudarme, pls. pregunta, lo conseguiré.

+0

Hey, ¿Cómo creó que la traza de la pila? –

Respuesta

1

De sus registros, parece que usa MacPorts y Python 2.6.

opencv compilará bien en este marco:

sudo port install opencv +python26 

asegúrese de tener py26-numpy instalado para tener soporte para funciones básicas como cv.fromarray:

sudo port install py26-numpy 

significa que su problema ha sido resuelto por la comunidad MacPorts. ¿es un problema de la última fuente? la versión que compila es la que (opencv 2.2.0) utiliza macports.

Tu pregunta es acerca de compilar desde el código fuente. Al mirar el archivo de puerto vinculado, podrá localizar su problema. para encontrar la portfile, hacer:

port file opencv 

o directamente

sudo port edit opencv 

esto mostrará todas las banderas de configuración necesarios para una OPENCV de trabajo.

+0

Probé diferentes variaciones y muchas de ellas fallaron con resultados diferentes. Tengo un sistema desordenado en este momento. ---- tener instalada python_select. Tiene 2 variantes de python26: python26-apple y python26. Si -apple one seleccionado Tengo la situación descrita en esta publicación. --- Después de haber seleccionado el segundo tengo este http://pastebin.com/ve7wjFy5. --- Esto es lo que tiene caminos de importación Python26: http://pastebin.com/1kggWJZB Python26-manzana tiene: http://pastebin.com/eDmXfpgg –

+0

Por si acaso - aquí donde consigo OpenCV mencionados en el/opt /: http://pastebin.com/Qij5kuFt --- Aquí es donde tengo ya cv.so: http://pastebin.com/Di8MvSJj –

8

Tuve la misma situación y resolví los siguientes pasos.

En ccmake (ccmake -G "Unix Makefiles" .), alternar al modo avanzado presionando t.

cambio PYTHON_LIBRARY valor a /opt/local/lib/libpython2.6.dylib y PYTHON_INCLUDE_DIR a /opt/local/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6.

Tenga en cuenta que la ruta específica depende, por supuesto, de qué versión de Python esté utilizando (2.6 o 2.7, etc.). Además, si está utilizando el sistema de Python, en lugar de MacPorts (que se encuentra en/opt), entonces es probable que desee PYTHON_LIBRARY ser /usr/lib/libpython2.6.dylib

+0

gracias! me lo arregló – so12311

+0

esto pareció solucionarlo, a pesar de que '' make install'' falló. Imagínate. – crizCraig

+0

Tuve el mismo error, pero no pude entender esta respuesta. Pero al escribir 'sudo port select --set python python27' solucionó el segfault para mí. – Richard

0

Typing:

sudo port select --set python python27 

arregló el segfault para mí.

0

El problema es simple, macports hicieron cv.so reescribió en ~/usr/lib

si ha instalado OPENCV usando

sudo port install opencv +python26 

tipo

sudo port select --set python python26 

si ha instalado utilizando OPENCV

sudo port install opencv +python27 

Tipo de

sudo port select --set python python27 

El "error" es que el intérprete python2.7 está intentando abrir python2.6 binario que da seg fallo 11 (o viceversa) precompilado

El problema es nevereinding con OpenCV que no tiene el código fuente, sólo los binarios que son cenaseis depende de qué compilador se construyeron en el (los cuales etc. plataforma)