wlly-lzh
2024-06-07 19:13 deepin
依赖的传递靠的是cmake子节点对父节点的继承,父节点所有的变量、依赖都会被子节点继承。
findpackage的作用是查找库,不要说什么findpackage让传递依赖变得容易。
评价:误人子弟
Reply Like 0 View the author
依赖的传递靠的是cmake子节点对父节点的继承,父节点所有的变量、依赖都会被子节点继承。
findpackage的作用是查找库,不要说什么findpackage让传递依赖变得容易。
评价:误人子弟
依赖的传递靠的是cmake子节点对父节点的继承,父节点所有的变量、依赖都会被子节点继承。
findpackage的作用是查找库,不要说什么findpackage让传递依赖变得容易。
评价:误人子弟
感谢指正。
Popular Events
More
【Qt Cmake配置案例】
使用find_package指令,查找并获取Qt库,并让Qt库在项目的子级目录获取。
【使用场景】
比如,项目中有一些子目录,这些子目录的头文件、cpp文件都需要依赖Qt库、或第三方库时,我们可以直接从项目最外面的父级目录的cmake文件中进行配置。
【基本的使用方法】
在上面使用场景的图片中,liucad这个父级目录里面有很多子级目录,比如子级目录有:src、actions、cmd、lib、main、plugins、test、ui。其中,有些子目录在自己的项目中仍然需要依赖Qt库的使用,不然这些子目录中的xxx.h和xxx.cpp文件的include会有
红色报错提示。下面,我们具体来看怎么实现,步骤如下:
(1).查看cmake项目中的Moudles,这里会提供获取qt库版本的cmake配置;
2.虽然我们已经知道qt库已经加入到项目中,但也只是能在父级目录liucad中使用。需要通过find_package的指令添加,让查询出来的Qt库能继续传递到更多子级目录中。
3.注意,在父级目录liucad的cmake配置中,打印其qt库版本的信息,可在Qt Creator界面中的“概要信息”中进行查看。
4.当父级目录liucad查获到qt库后,我们可以以子级目录main中继续获取对Qt库的依赖,通过target_link_libraries指令进行qt库的链接,让cpp源文件、h头文件能正常include 关于qt库中的ui类和其它gui类。
5.检查子级目录main的CPP源文件和h头文件,看Qt库相关类是否被正常include。
【结语】
随着cmake项目的文件结构变得越加繁杂,项目中子目录的数量会变得越来越多,对各种库的依赖也会变得更多,find_package指令的使用反而让其依赖的传递变得简单。如果您对其使用有更好的建议,可在评论区进行评论,希望能共同进步。