2

我一直在尝试将 OpenCV 库安装到我的 centos 系统,但是当我在使用 cmake 配置后键入 make 并按 Enter 时,我收到以下错误:

[100%] Building CXX object tests/cv/CMakeFiles/cvtest.dir/src/amoments.o
[100%] Building CXX object tests/cv/CMakeFiles/cvtest.dir/src/affine3d_estimator.o
[100%] Building CXX object tests/cv/CMakeFiles/cvtest.dir/src/acontours.o
[100%] Building CXX object tests/cv/CMakeFiles/cvtest.dir/src/areprojectImageTo3D.o
Linking CXX executable ../../bin/cvtest
CMakeFiles/cvtest.dir/src/highguitest.o: In function `CV_HighGuiTest::run(int)':
highguitest.cpp:(.text._ZN14CV_HighGuiTest3runEi+0x15): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
[100%] Built target cvtest
make: *** [all] Error 2

有趣的是,一旦我收到此错误:

[ 99%] Built target mltest
[ 99%] Generating generated0.i
Traceback (most recent call last):
  File "/home/proje/OpenCV-2.1.0/interfaces/python/gen.py", line 43, in ?
    if True in has_init and not all(has_init[has_init.index(True):]):
NameError: name 'all' is not defined
make[2]: *** [interfaces/python/generated0.i] Error 1
make[1]: *** [interfaces/python/CMakeFiles/cvpy.dir/all] Error 2
make: *** [all] Error 2

这些错误的原因可能是什么?我需要立即在这台计算机上安装 opencv。

4

2 回答 2

3

我遇到了这个问题.. 它是 Python 接口... 默认情况下,Python 2.4 安装在 CentOS 上,升级到 >2.6 并不容易。

OpenCV构建的时候,被Python版本搞糊涂了……

所以我在“cmake”上禁用了 Python 接口,没关系。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=NO ..

但是,当然你不能再将 OpenCV 与 Python 一起使用。

于 2010-08-12T08:35:01.737 回答
1

Python 函数all()是在 2.5 版本中引入的。您可能正在all()使用 Python 语言中尚不存在的版本进行编译。

根据 Python Built-in Functions Listall()相当于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

您可能还需要定义any(). 它相当于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

不过,如果安装脚本需要 Python 2.5,那么 Python 包装器的其余部分也很有可能。

于 2010-08-06T12:07:28.620 回答