当前位置: 首页 > wzjs >正文

自己怎么做一元购物网站高品质的网站设计制作

自己怎么做一元购物网站,高品质的网站设计制作,物联网设备,高端公司网站建设背景 find_package应该算是我们使用最多的cmake命令了。但是它是如何找到上游库的.cmake文件的? 根据官方文档,整理下find_package涉及到的搜索模式。 搜索模式 find_package涉及到的搜索模式有两种:模块模式(Module mode)和配置模式(Conf…

在这里插入图片描述

背景

find_package应该算是我们使用最多的cmake命令了。但是它是如何找到上游库的.cmake文件的?
根据官方文档,整理下find_package涉及到的搜索模式。

搜索模式

find_package涉及到的搜索模式有两种:模块模式(Module mode)和配置模式(Config mode)。

模块模式

在此模式下,CMake搜索名为Find<PackageName>.cmake的文件,首先在CMAKE_MODULE_PATH中列出的位置查找,然后在CMake安装提供的查找模块(Find moduls)中查找。查找模块(Find moduls)的主要任务是确定软件包是否可用,设置<PackageName>_FOUND变量以反映这一点,并提供使用该软件包所需的任何变量、宏和导入目标。在上游库未提供配置文件包的情况下,查找模块非常有用。

Find.cmake 文件通常不是由上游库本身提供的。我们发现在安装CMake时,会一并安装一些上游库的查找模块(Find modules)

以Ubuntu上的CMake为例,在/usr/share/cmake-3.22/Modules目录下可以查看到CMake提供的查找模块(Find modules),仅列举部分文件。

FindALSA.cmake
FindBZip2.cmake
FindCUDA.cmake
FindCURL.cmake
FindGTK2.cmake
FindJPEG.cmake
FindLibXml2.cmake
FindOpenGL.cmake
FindOpenSSL.cmake
FindProtobuf.cmake
FindQt.cmake
FindRuby.cmake
FindSDL.cmake
FindSQLite3.cmake
FindVulkan.cmake
FindX11.cmake

由于这些查找模块(Find modules)是由CMake维护的,所以有可能会过时。

我们可以使用CMAKE_MODULE_PATH添加自定义的模块搜索路径。CMAKE_MODULE_PATH的值默认为空,其自定义搜索路径的优先级比默认模块搜索路径高。

配置模式(Config mode)

在此模式下,CMake搜索名为<lowercasePackageName>-config.cmake<PackageName>Config.cmake的文件。如果指定了版本详细信息,它还会查找<lowercasePackageName>-config-version.cmake<PackageName>ConfigVersion.cmake

配置和版本文件通常作为上游库安装文件的一部分,因此它们往往比查找模块(Find modules)更可靠。

配置模式(Config mode)会搜索指定目录下的.cmake文件。以Ubuntu系统为例,其搜索路径如下:

<prefix>/(lib/<arch>|lib*|share)/cmake/<name>*/
<prefix>/(lib/<arch>|lib*|share)/<name>*/
<prefix>/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/
<prefix>/<name>*/(lib/<arch>|lib*|share)/cmake/<name>*/
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/

其中<prefix>可通过变量CMAKE_PREFIX_PATH设置。需要注意<name>不区分大小写,并且对应于指定的<PackageName>

以Ubuntu系统上安装的ITK(Insight Toolkit)库为例,我们可以找到ITKConfig.cmakeITKConfigVersion.cmake

$ dpkg -L libinsighttoolkit5-dev | grep -i cmake
/usr/lib/cmake
/usr/lib/cmake/ITK-5.2
/usr/lib/cmake/ITK-5.2/ITKConfig.cmake
/usr/lib/cmake/ITK-5.2/ITKConfigVersion.cmake
...

典型用法

find_package的典型用法如下,是基本签名(basic signature)的一个简化形式。

find_package(<PackageName> [<version>] [REQUIRED] [COMPONENTS <components>...])

在这种典型用法下,命令首先在模块模式下搜索。如果未找到相应的Find<PackageName>.cmake文件,则回退到配置模式继续搜索。

当然我们也可以通过显示设置MODULE或是CONFIG参数指定只使用模块模式或者配置模式。

find_package(<PackageName> [<version>] [CONFIG|MODULE] [REQUIRED] [COMPONENTS <components>...])

参考资料

  1. https://cmake.org/cmake/help/latest/command/find_package.html

文章转载自:

http://2Maqx8Iq.hrzhg.cn
http://eaNM08pY.hrzhg.cn
http://hChCbIbz.hrzhg.cn
http://nl27Sn93.hrzhg.cn
http://jsikYKeV.hrzhg.cn
http://YoWvlty3.hrzhg.cn
http://ThN1zI3d.hrzhg.cn
http://MSRXwip0.hrzhg.cn
http://kH2mo8JQ.hrzhg.cn
http://3zNhdZrv.hrzhg.cn
http://BtT54HBN.hrzhg.cn
http://xR0z17uK.hrzhg.cn
http://FlCCk4Vw.hrzhg.cn
http://S7XTR8LE.hrzhg.cn
http://U9xTjCY2.hrzhg.cn
http://Qf9DkWVH.hrzhg.cn
http://xOJyAhqP.hrzhg.cn
http://v3g0uIj7.hrzhg.cn
http://o6DUHilt.hrzhg.cn
http://cWrgBiTp.hrzhg.cn
http://B9iBRKjN.hrzhg.cn
http://gzImO7WF.hrzhg.cn
http://d2FAjIxS.hrzhg.cn
http://Noxx7nXD.hrzhg.cn
http://rThuX76Y.hrzhg.cn
http://WdrtdSvz.hrzhg.cn
http://pNhNvQyQ.hrzhg.cn
http://3EgB5FhY.hrzhg.cn
http://CqFgkViF.hrzhg.cn
http://q2NpXwNj.hrzhg.cn
http://www.dtcms.com/wzjs/730202.html

相关文章:

  • 做网站需要的大图在线制作图片网站有哪些
  • 软件工网站开发课程设计报告大江网站建设
  • 东莞专业网站设计咨询杭州建设工程信用平台
  • 文章一键导入wordpress网站栏目页 优化
  • 网站开发 家具销售 文献关键词歌曲歌词
  • 手机h5网站开发线上编程课
  • 电商网站开发报价单银川网站公司
  • 做商城网站的公司推荐WordPress文章预览篇幅
  • 做电子请帖的网站海口seo关键词优化
  • 合肥网站忧化建设部网站关于公租房
  • 女和女做网站网页设计免费网站
  • 工信部清理未备案网站专业建站公司前景
  • 部门网站建设自查报告建设网站模版
  • asp网站建设制作怎么可以联系到网站开发者
  • 婚恋网站女代我做彩票wordpress 自动评论软件
  • 做网站的关键技术wordpress博客只显示几个
  • 网站建设自学多长时间做水果的网站
  • 做快照网站和推广 哪个效果好html展示wordpress
  • 平面设计案例网站优秀网站参考
  • 网站免费诊断在网站上做送餐外卖需要哪些资质
  • 东莞整合网站建设公司查看 wordpress 插件
  • 本机快速做网站网站建设基础内容
  • 设计师 推荐 网站传奇网页游戏开服
  • 马达加工东莞网站建设中国响应式网站案例
  • 网站设计的软件昆明网站建设方案策划
  • 绍兴做网站公司seo服务是什么
  • 如何招聘软件网站开发人员php企业网站例子
  • 宁波网站推广人莱芜泉网站建设
  • 大连建站价格网络营销渠道策略
  • 网站制作加盟个人工作室注册流程及费用