2009-08-13 3 views
2

인텔 툴을 사용하여 실행 프로필을 작성하기 위해 Linux에서 icc로 OpenCV를 컴파일하려고합니다.ICC로 OpenCV를 컴파일하는 방법은 무엇입니까?

기본 옵션으로 icc의 마지막 버전을 설치했습니다. 나는 "사용자"(icc는 내 집에 설치)와 "sudo"(icc는/opt에 설치) 설치를 시도했다. 주요 한 - : pre1.1 나는 또한 iccvars.sh 소스 생각 11.1 20090630

ICC의 버전은 나는 또한 OpenCV의 여러 버전을 시도 PATH와 LD_LIBRARY_PATH

에 필요한 경로를 추가합니다. 구성은 모든 에서 ICC를 인식하지 못합니다 - 'latest_tested_snapshot'하고 '트렁크'버전 : ICC 잘 구성 인식 (--enable-OpenMP를이 -openmp 옵션을 생산하고 -fopenmp되지 않음)

걸, 편집의 중간까지는 모든 것이 괜찮은 것처럼 보입니다. 그런 다음 '운영자'에 대해 항상 많은 경고를합니다 (아마도 100 개). 여기에 예제 :

../include/opencv/cxcore.hpp(335): warning #597: "cv::Size_<_Tp>::operator cv::Size_<float>() const [with 
_Tp=float]" will not be called for implicit or explicit conversions 
     operator Size_<float>() const; 
    ^
      detected during instantiation of class "cv::Size_<_Tp> [with _Tp=float]" at line 394 

그리고 finnally 오류 : 사람이 ICC와 OpenCV의 컴파일 succeded

/bin/bash ../../../libtool --tag=CXX --mode=compile icpc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include/opencv -I. -DCV_NO_BACKWARD_COMPATIBILITY -fPIC -I/usr/include/python2.6 -g -O2 -MT _highgui_la-pyhelpers.lo -MD -MP -MF .deps/_highgui_la-pyhelpers.Tpo -c -o _highgui_la-pyhelpers.lo `test -f 'pyhelpers.cpp' || echo './'`pyhelpers.cpp 
_ml.cpp(36134): error: argument of type "uchar={unsigned char} *" is incompatible with parameter of type "int *" 
     result = (int)(arg1)->get_ord_var_data(arg2,arg3,arg4,arg5,(float const **)arg6,(uchar const **)arg7); 
                  ^

_ml.cpp(36134): error: argument of type "const uchar={unsigned char} **" is incompatible with parameter of type "const int **" 
     result = (int)(arg1)->get_ord_var_data(arg2,arg3,arg4,arg5,(float const **)arg6,(uchar const **)arg7); 
                         ^

compilation aborted for _ml.cpp (code 2) 
make[4]: *** [_ml_la-_ml.lo] Erreur 1 

나는, 알려주세요!

+0

이 라이브러리에서 공식적으로 지원되는 컴파일러는 무엇입니까? 이걸 처음 시도해 봤어? 나는 이전에 그렇게 해본 적이 없지만 다른 컴파일러로 컴파일하고 싶다면 직접 (힘든) 작업을해야 할 것입니다. 이 두 가지 오류는 훨씬 더 많은 오류를 숨길 수 있습니다. –

+0

예, 컴파일러 icc는 OpenCV를 지원해야합니다. –

답변

0

해당 라이브러리를 만드는 데 사용 된 ICC와 다른 버전을 사용하면 문제가 발생할 수 있습니다. 사용할 버전을 도서관 제공 업체에 요청해야합니다.

1

좋아, 나는 마지막으로 ICC로 OpenCV를 컴파일했다. OpenCV는 Intel과 밀접한 관계가 있습니다. Intel이이 프로젝트에 깊이 관여하고 있기 때문입니다. 버전 1.1부터 OpenCV는 기본적으로 icc 컴파일러를 지원하기로되어 있습니다. 구성에 CC = icc를 지정하면 -fopenmp (gcc 스타일)이 -openmp (icc 스타일)으로 변형되어 약간의 변경이 있습니다. 그러나 OpenCV 1.1 (최신 안정 버전)의 출시와 현재 사이에 icc가 발전했습니다. 이전 버전의 icc로 컴파일하는 데 사용 된 것 같습니다. 그것을 바꿀 수는 svn의 진화 https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot/opencv/

하지만,이 시간에 ((27) 8 월) 그것은 작동 :

은 SVN에 대한 최신 테스트 버전 comile. 경고는 여전히 여기 있습니다 (사과하지 마십시오, 많이 있습니다). 여기 내 구성 강타 라인 :

./configure --prefix=/home/user/opencv/icc CC=icc CXX=icpc --enable-openmp --disable-apps --disable-optimization --disable-sse 

I 장애인 최적화 및 SSE 명령어는 ICC 일부 충돌을 발생한다.

+0

이것은 더 이상 최신이 아닙니다. 그들은 지금 CMake를 사용합니다. 어떻게 작동합니까? – Albert

관련 문제