2009-08-13 43 views
2

私はLinux上でiccを使ってOpenCVをコンパイルしようとしています。これは、インテルツールで実行をプロファイルするためです。ICCでOpenCVをコンパイルするには?

デフォルトのオプションでiccの最新バージョンをインストールしました。私は "ユーザ"(私の家にiccがインストールされている)と "sudo"(iccは/ optにインストールされています)の両方をインストールしようとしました。 pre1.1: - メイン1 :ICCのバージョンは、私はまた、PATHとLD_LIBRARY_PATH

に必要なパスを追加し、ソースiccvars.shに思った私はまた、OpenCVののいくつかのバージョンを試してみまし11.1 20090630

です。 configureがすべて でICCを認識しない - 「latest_tested_snapshot」と「トランク」バージョンは:ICCはよくconfigureが認識されている(--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

このライブラリではどのコンパイラが正式にサポートされていますか?あなたはこれで最初に試しましたか?私はこれまでやったことはありませんが、別のコンパイラでコンパイルしたい場合は、自分で作業する必要があります。これらの2つのエラーは、より多くのエラーを隠すことができます。 –

+0

はい、コンパイラiccはOpenCV用にサポートされています。 –

答えて

0

あなたの問題は、そのライブラリを作成するために使用されたICCとは異なるバージョンを使用したことが原因です。ライブラリプロバイダに、使用するバージョンを問い合わせる必要があります。

1

私はついに、OpenCVをICCでコンパイルしました。 OpenCVはIntelと密接な関係にあり、Intelはこのプロジェクトに非常に関与しています。バージョン1.1以降、OpenCVはiccコンパイラをネイティブにサポートすることになっています。 configureでCC = iccを指定すると、-fopenmp(gcc形式)が-openmp(icc形式)に変換されているため、微妙な変更があります。しかし、OpenCV 1.1(これは最新の安定版)のリリースと現在の間に、iccは進化しています。以前のバージョンのiccでコンパイルしていたと思います。

それはSVNの最新テスト版でcomile:SVNの進化として https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot/opencv/

、それが変更される可能性が、今回(8月27日)で、それが動作します。警告はまだここにあります(心配しないでください、たくさんあります)。ここで私の設定するbash行:

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

iccとの競合が発生するため、最適化とsse命令が無効になりました。

+0

これはもう最新ではありません。彼らは今CMakeを使用します。どうやってそこで動くの? – Albert

関連する問題