2010-05-16 4 views
2

내가 만들 입력하고 cmake로 구성한 후 입력 쳤을 때 나는 그러나 내 CentOS는 시스템에 OpenCV의 라이브러리를 설치하려고하고 있었다, 나는 다음과 같은 오류 얻을 :CentOS 5에서 OpenCV 2.0을 구축하는 데 문제가 있습니까?

[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를 설치해야합니다.

답변

1

Python 함수 all()이 버전 2.5와 함께 도입되었습니다. all()이 아직 파이썬 언어로 존재하지 않는 버전으로 컴파일하고있을 것입니다. 또한 any()를 정의 할 필요가 있습니다

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

: 파이썬 Built-in Functions List, all()에 따르면

은 동일합니다.

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

설치 스크립트에 Python 2.5가 필요한 경우 나머지 Python 래퍼도 마찬가지입니다.

3

이 문제는 .. 파이썬 인터페이스 ... 기본적으로 Python 2.4는 CentOS에 설치되어 있으며, 2.6 이상으로 업그레이드하기는 쉽지 않습니다.

OpenCV의 빌드

,

그래서 내가 "cmake"에 파이썬 인터페이스를 비활성화했습니다 ... 파이썬 버전에 의해 혼란이 확인되었다한다.

cmake -D CMAKE_BUILD_TYPE = RELEASE -D CMAKE_INSTALL_PREFIX =/usr/지방 -D의 BUILD_NEW_PYTHON_SUPPORT = NO ..

하지만, 물론 당신이 더 이상 파이썬에서 OpenCV를 사용할 수 없습니다.