首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ICC编译OpenCV?

如何用ICC编译OpenCV?
EN

Stack Overflow用户
提问于 2009-08-13 12:54:20
回答 2查看 3K关注 0票数 2

我正在尝试在Linux上用icc编译OpenCV,以便用英特尔工具分析执行情况。

我使用默认选项安装了最新版本的icc。我尝试了安装"user“(icc安装在我家里)和"sudo”(安装在/opt中)。icc的版本是11.1 20090630

我还考虑了源码iccvars.sh,将需要的路径添加到PATH和LD_LIBRARY_PATH中

我还尝试了OpenCV的几个版本:-主要的一个: pre1.1。configure根本无法识别icc - 'latest_tested_snapshot‘和'trunk’版本: configure可以很好地识别icc (--enable-openmp produce -openmp选项,而不是-fopenmp)

当我编写的时候,一切看起来都很正常,直到编译到一半。然后就会有很多关于“操作符”的警告(也许是上百条)。下面是一个示例:

代码语言:javascript
复制
../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

最后是错误:

代码语言:javascript
复制
/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

如果有人成功地用国际商会编译了OpenCV,请让我知道!

EN

回答 2

Stack Overflow用户

发布于 2009-08-27 11:57:05

好了,我终于用ICC编译了OpenCV。OpenCV与英特尔关系密切,因为英特尔高度参与了该项目。从1.1版本开始,OpenCV应该本机支持icc编译器。当您在configure中指定CC=icc时,会有一些细微的变化,因为-fopenmp (gcc样式)会转换为-openmp (icc样式)。然而,从ICC1.1(这是最新的稳定版)发布到现在,OpenCV已经发生了变化。我想它过去是用以前版本的icc编译的。

它与svn上的最新测试版本https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot/opencv/相一致。

随着svn的发展,它可能会改变,但在这个时候(8月27日)它是有效的。警告仍然在这里(不要害怕,有很多)。下面是我的配置bash行:

代码语言:javascript
复制
./configure --prefix=/home/user/opencv/icc CC=icc CXX=icpc --enable-openmp --disable-apps --disable-optimization --disable-sse

我禁用了优化和sse指令,因为它会与icc产生一些冲突。

票数 1
EN

Stack Overflow用户

发布于 2009-08-13 21:55:26

您的问题可能是因为使用了用于创建该库的ICC的不同版本。您必须向库提供商询问要使用哪个版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1271797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档