尝试从源代码在我的Mac上编译opencv。
我有以下CMakeCache.txt: http://pastebin.com/KqPHjBx0
我制作ccmake ..
,按c
,然后按g
。
比我sudo make -j8
:
http://pastebin.com/cJyr1cEd
比我sudo make install
:
http://pastebin.com/W77syYBj
而不是我在python中创建import cv
并使用此stacktrace获取“Segmentation faul”:
http://pastebin.com/gegYAK1u
我不知道对我有什么帮助,请帮忙。问,我会明白的。
答案 0 :(得分:8)
我遇到了同样的情况并解决了以下步骤。
在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 :(得分:1)
从您的日志中,您似乎使用了MacPorts和python 2.6。
opencv
将在此框架上正常编译:
sudo port install opencv +python26
请务必安装py26-numpy
以支持cv.fromarray
等基本功能:
sudo port install py26-numpy
表示您的问题已由MacPorts社区解决。这是最新来源的问题吗?您编译的版本是macports使用的版本(opencv 2.2.0)。
您的问题是关于从源代码编译。查看链接到的端口文件,您将能够找到您的问题。找到Portfile,执行:
port file opencv
或直接
sudo port edit opencv
这将列出工作openCV所需的所有配置标志。
答案 2 :(得分:0)
打字:
sudo port select --set python python27
为我修复了段错误。
答案 3 :(得分:0)
问题很简单,macports在〜/ usr / lib
中重写了cv.so如果您使用
安装了OPENCVsudo port install opencv +python26
型
sudo port select --set python python26
如果您使用
安装了OPENCVsudo port install opencv +python27
型
sudo port select --set python python27
“bug”是python2.7解释器试图打开python2.6预编译的二进制文件,它给出了seg fault 11(反之亦然)
opencv的问题在于它没有源代码,只是依赖于构建在哪个编译器上的二进制文件(哪个平台等)。