系统家园网 - 专注分享最好用的电脑系统

findpackage 查找路径 C语言中查找package()搜索路径的实现方法

更新时间:2024-02-02 09:47:08作者:jiang

  在C语言中,查找package()搜索路径的实现方法是一项重要的技术,当我们在编写代码时,经常会遇到需要引用其他文件或库的情况。而要正确地找到这些文件或库,我们就需要通过查找路径来定位它们的位置。在C语言中,我们可以使用findpackage函数来实现这一功能。通过指定要查找的文件或库的名称,findpackage函数会按照一定的搜索顺序在指定的路径下进行查找,并返回找到的文件或库的路径。这种方法不仅帮助我们解决了文件路径的问题,还使得我们可以更加灵活地引用其他代码,提高了代码的复用性和可维护性。在今天的软件开发中,掌握查找package()搜索路径的实现方法对于提高开发效率和代码质量都具有重要意义。

findpackage 查找路径 C语言中查找package()搜索路径的实现方法 目录find_package()Module模式Config模式find_package(OpenCV REQUIRED) 如何设置查找路径/指定只用版本find_package()

内部用find_path()和find_library()实现的找头文件路径和动态共享库文件

首先明确,find_package()肯定需要个.cmake文件,不然它根本就不知道package的名字具体是啥(大写?小写?),去哪找???

Module模式

(1)是否有CMAKE_MODULE_PATH,有的话,优先在这里找Find<packageName>.cmake文件,根据这个文件来找; (最容易自己操作)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_module)

(2)没有CMAKE_MODULE_PATH,在cmake Modules里找(/usr/share/cmake-3.10-Modules)

Config模式

要找<packageName>Config.cmake或<lower-case-package-name>-config.cmake文件,查找顺序:(1)<packageName>_ROOT变量路径,cmake3.12新增(2)<package_name>_DIR变量路径,有了就不用上面那个了(可以用这个,定义这个变量)

set(OpenCV_ROOT "/usr/lib/opencv_249/build") #可在子目录查找#为了在这里查找.cmake文件set(OpenCV_DIR "/usr/lib/opencv_300/build")  #弱智,不能在子目录查找find_package(OpenCV REQUIRED          NO_MODULE        # tells CMake to use config mode          NO_DEFAULT_PATH) # and don't look other anywhere #此时用的在${OpenCV}查找的.cmake文件

如果没有.cmake文件而且自己不想写.cmake文件,那就不用find_package,简单粗暴:

#find_package就是这么实现的#头文件目录(是个目录的绝对路径)find_path(<NAME_INCLUDE_DIRS> NAMES XX.h PATHS /usr/include /usr\local/include/ ...)#库文件(是个文件的绝对路径)find_library(<NAME_LIBRARIES> NAMES lib-name PATHS /usr/lib /usr/local/lib ...)

CMAKE_INCLUDE_PATH:find_path默认会去这里找,当然指定写到PATHS后面更好CMAKE_LIBRARY_PATH:find_library默认会去这里找,当然指定写到PATHS后面更好

set(CMAKE_INCLUDE_PATH /usr/local/include/opencv                    /usr/include) find_path(CV_INCLUDE_DIRS NAMES cv.h PATHS CMAKE_INCLUDE_PATH)

find_package(OpenCV REQUIRED) 如何设置查找路径/指定只用版本
#find opencv libfind_package(OpenCV REQUIRED              NO_MODULE # should be optional, tells CMake to use config mode              PATHS /usr/local # look here              NO_DEFAULT_PATH) # and don't look anywhere else

到此这篇关于findpackage 查找路径的文章就介绍到这了,更多相关C语言 find_package()搜索路径内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! 

  以上就是findpackage查找路径的全部内容,如果需要的话,您可以按照以上步骤进行操作,希望对大家有所帮助。

Copyright ©  2012-2024 系统家园网 版权声明 网站地图