cmake的一个很好的案例

mac2024-11-09  8

主要讲解了,在cmake时,如何根据系统环境,下载加速库。进行编译。

转自:https://www.cnblogs.com/yongy1030/p/10293178.html

手动安装OpenCV下的IPP加速库

写在前面

安装opencv的时候,往往会卡在这里:

1

IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz

  

其实就是墙的原因,然后你去搜,解决方法就是先下载好,然后安装opencv的时候从本地载入。

有的人是真恶心,放个下载在那里。

 

转载一个好人的博客吧,这里有下载的方式,所有的IPP版本都可以这样做。

https://yinguobing.com/install-ippcv-manually/

 

以下是那位好人博客的方法

ippcv会在cmake的时候自动从github上下载,但是在网络状况不佳的情况下会下载失败。这时候我们只能采用手动安装的方式。

 

ippcv的下载地址其实就藏在ippcv.cmake文件(本人注:在opencv/3rdparty/ippicv文件夹下)中。里边有几个比较重要的变量。

 

第一个是IPPICV_COMMIT,它的值可以从代码中找到:

1

set(IPPICV_COMMIT "a62e20676a60ee0ad6581e217fe7e4bada3b95db")

  

第二个是OPENCV_IPPICV_URL,同理可以找到:

1

"$ENV{OPENCV_IPPICV_URL}"<br>"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"

  

这两个联合起来就可以得到文件的路径为:

1

https://raw.githubusercontent.com/opencv/opencv_3rdparty/a62e20676a60ee0ad6581e217fe7e4bada3b95db/ippicv/

  

最后一个是文件名OPENCV_ICV_NAME,针对不同的系统与环境会有所不同,Linux 64bit下的文件名可以从如下代码中找到:

1

2

3

if(X86_64)

set(OPENCV_ICV_NAME "ippicv_2017u2_lnx_intel64_20170418.tgz")

set(OPENCV_ICV_HASH "87cbdeb627415d8e4bc811156289fa3a")

  

将这三样组合在一起即可得到最终的URL:

1

https://raw.githubusercontent.com/opencv/opencv_3rdparty/a62e20676a60ee0ad6581e217fe7e4bada3b95db/ippicv/ippicv_2017u2_lnx_intel64_20170418.tgz

  

当然,你也可以不这么麻烦,直接访问OpenCV在Github上的opencv_3rdparty也可以找到文件的具体地址,选择正确的分支即可。

目前最新的ippcv可以在这里找到:(本人注:这个已经过时了,当然要是有你需要的,那好挺好)

1

https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20170418/ippicv

  

以上是那位好人博客的方法

 

 

之后就是

将 opencv/3rdparty/ippicv文件夹下的 ippicv.cmake中,第47行

 

1

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"

  

改成:

1

"file://{刚刚手动下载的IPP文件的上一级目录}/"

  

比如,我的IPP文件在这:

/home/yongyang/Downloads/ippicv_2019_lnx_intel64_general_20180723.tgz

所以改成:

1

"file:///home/yongyang/Downloads/"

  

最新回复(0)