«Ошибка сегментации» во время «импорта резюме» в Mac OS - PullRequest
6 голосов
/ 09 марта 2011

Попытка скомпилировать opencv на моем Mac из исходного кода.

У меня есть следующий CMakeCache.txt: http://pastebin.com/KqPHjBx0

Я делаю ccmake .., нажимаю c, затем g. Чем я делаю sudo make -j8: http://pastebin.com/cJyr1cEd

Чем я делаю sudo make install: http://pastebin.com/W77syYBj

И затем я делаю import cv в python и получаю "Сегментация faul" с этой трассировкой стека: http://pastebin.com/gegYAK1u

Я не знаю, что может мне пригодиться, пожалуйста. спроси, я возьму.

Ответы [ 4 ]

8 голосов
/ 03 июня 2011

У меня была такая же ситуация, и я решил следующие шаги:

В ccmake (ccmake -G "Unix Makefiles" .), переключитесь в расширенный режим, нажав t.

, измените значение PYTHON_LIBRARY на/opt/local/lib/libpython2.6.dylib и PYTHON_INCLUDE_DIR до /opt/local/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6.

Обратите внимание, что конкретный путь зависит, конечно, от того, какую версию Python вы используете (2.6 или 2.7 и т. Д.).Кроме того, если вы используете системный Python вместо MacPorts (который находится в / opt), то вы, вероятно, хотите, чтобы PYTHON_LIBRARY было / usr / lib / libpython2.6.dylib

1 голос
/ 10 марта 2011

Судя по вашим журналам, вы используете MacPorts и python 2.6.

opencv прекрасно скомпилируется на этой платформе:

sudo port install  opencv +python26

обязательно установите py26-numpy для поддержки основных функций, таких как cv.fromarray:

sudo port install py26-numpy

означает, что ваша проблема была решена сообществом MacPorts.это проблема последнего источника?версия, которую вы компилируете, - это версия (opencv 2.2.0), используемая macports.

Ваш вопрос касается компиляции из исходного кода.Глядя на связанный файл порта, вы сможете найти свою проблему.чтобы найти Portfile, выполните:

port file opencv

или напрямую

sudo port edit  opencv

. В этом списке будут перечислены все флаги конфигурации, необходимые для работающего openCV.

0 голосов
/ 02 декабря 2013

Проблема проста, macports переписал cv.so в ~ / usr / lib

, если вы установили OPENCV, используя

sudo port install  opencv +python26

type

sudo port select --set python python26

если вы установили OPENCV, используя

sudo port install  opencv +python27

type

sudo port select --set python python27

«Ошибка» заключается в том, что интерпретатор python2.7 пытается открыть предварительно скомпилированный двоичный файл python2.6, который вызывает ошибку seg 11(или наоборот)

Непреодолимая проблема с opencv состоит в том, что у него нет исходного кода, только двоичные файлы, которые сильно зависят от того, на каком компиляторе он был построен (на какой платформе и т. д.)

0 голосов
/ 22 августа 2013

Typing:

sudo port select --set python python27

исправил ошибку для меня.

...