cmake:find_file、find_library、find_path、find_program 叁歲伎倆 2022-10-12 00:42 234阅读 0赞 # find\_file # find_file (<VAR> name1 [path1 path2 ...]) find_file ( <VAR> name | NAMES name1 [name2 ...] [HINTS [path | ENV var]... ] [PATHS [path | ENV var]... ] [PATH_SUFFIXES suffix1 [suffix2 ...]] [DOC "cache documentation string"] [NO_CACHE] [REQUIRED] [NO_DEFAULT_PATH] [NO_PACKAGE_ROOT_PATH] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] [NO_SYSTEM_ENVIRONMENT_PATH] [NO_CMAKE_SYSTEM_PATH] [CMAKE_FIND_ROOT_PATH_BOTH | ONLY_CMAKE_FIND_ROOT_PATH | NO_CMAKE_FIND_ROOT_PATH] ) * **该命令用于查找指定文件的完整路径**。 * 创建一个名为< VAR >的缓存条目(如果指定了NO\_CACHE,则是一个普通变量)来存储此命令的结果。 * 如果找到文件的完整路径,则结果存储在变量中,并且搜索不会重复,除非该变量被清除。 * 如果没有找到,结果将是< VAR >-NOTFOUND。 选项包括: * NAMES * 为文件的完整路径指定一个或多个可能的名称。 * 当使用此方法指定带有或不带有版本后缀的名称时,我们建议首先指定未版本控制的名称,以便在发行版提供的包之前找到本地构建的包。 * HINTS, PATHS * 除默认位置外,指定要搜索的目录。 * ENV var子选项从系统环境变量中读取路径。 * PATH\_SUFFIXES * 在每个目录位置下面指定要检查的其他子目录。 * DOC: * 指定< VAR>缓存项的文档字符串。 * NO\_CACHE * 3.21新版功能。 * 搜索结果将存储在一个普通变量中,而不是缓存项中。 * 注意,如果在调用之前已经设置了变量(作为普通变量或缓存变量),则不会进行搜索。 * 警告:应该谨慎使用此选项,因为它可能会大大增加重复配置步骤的成本。 * REQUIRED * 3.18新版功能。 * 如果没有找到任何东西,则停止处理并给出错误消息,否则下次用相同的变量调用find\_file时将再次尝试搜索。 * NO\_DEFAULT\_PATH : * 如果指定了NO\_DEFAULT\_PATH,则不会向搜索添加其他路径。 * 如果没有指定NO\_DEFAULT\_PATH,搜索过程如下: # find\_library # find_library (<VAR> name1 [path1 path2 ...]) find_library ( <VAR> name | NAMES name1 [name2 ...] [NAMES_PER_DIR] [HINTS [path | ENV var]... ] [PATHS [path | ENV var]... ] [PATH_SUFFIXES suffix1 [suffix2 ...]] [DOC "cache documentation string"] [NO_CACHE] [REQUIRED] [NO_DEFAULT_PATH] [NO_PACKAGE_ROOT_PATH] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] [NO_SYSTEM_ENVIRONMENT_PATH] [NO_CMAKE_SYSTEM_PATH] [CMAKE_FIND_ROOT_PATH_BOTH | ONLY_CMAKE_FIND_ROOT_PATH | NO_CMAKE_FIND_ROOT_PATH] ) **此命令用于查找库**。创建一个名为< VAR >的缓存条目(如果指定了NO\_CACHE,则是一个普通变量)来存储此命令的结果。如果找到库,则结果存储在变量中,并且搜索不会重复,除非该变量被清除。如果没有找到,结果将是< VAR >-NOTFOUND。 选项包括: * NAMES * 为库指定一个或多个可能的名称。 * 当使用此方法指定带有或不带有版本后缀的名称时,我们建议首先指定未版本控制的名称,以便在发行版提供的包之前找到本地构建的包 # find\_path # find_path (<VAR> name1 [path1 path2 ...]) find_path ( <VAR> name | NAMES name1 [name2 ...] [HINTS [path | ENV var]... ] [PATHS [path | ENV var]... ] [PATH_SUFFIXES suffix1 [suffix2 ...]] [DOC "cache documentation string"] [NO_CACHE] [REQUIRED] [NO_DEFAULT_PATH] [NO_PACKAGE_ROOT_PATH] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] [NO_SYSTEM_ENVIRONMENT_PATH] [NO_CMAKE_SYSTEM_PATH] [CMAKE_FIND_ROOT_PATH_BOTH | ONLY_CMAKE_FIND_ROOT_PATH | NO_CMAKE_FIND_ROOT_PATH] ) **该命令用于查找包含命名文件的目录**。创建一个名为< VAR >的缓存条目(如果指定了NO\_CACHE,则是一个普通变量)来存储此命令的结果。如果找到目录中的文件,结果将存储在变量中,并且搜索将不会重复,除非该变量被清除。如果没有找到,结果将是< VAR >-NOTFOUND。 # find\_program # find_program (<VAR> name1 [path1 path2 ...]) find_program ( <VAR> name | NAMES name1 [name2 ...] [NAMES_PER_DIR] [HINTS [path | ENV var]... ] [PATHS [path | ENV var]... ] [PATH_SUFFIXES suffix1 [suffix2 ...]] [DOC "cache documentation string"] [NO_CACHE] [REQUIRED] [NO_DEFAULT_PATH] [NO_PACKAGE_ROOT_PATH] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] [NO_SYSTEM_ENVIRONMENT_PATH] [NO_CMAKE_SYSTEM_PATH] [CMAKE_FIND_ROOT_PATH_BOTH | ONLY_CMAKE_FIND_ROOT_PATH | NO_CMAKE_FIND_ROOT_PATH] ) **该命令用于查找程序**。创建一个名为< VAR >的缓存条目(如果指定了NO\_CACHE,则是一个普通变量)来存储此命令的结果。如果找到该程序,则结果存储在该变量中,并且搜索不会重复,除非该变量被清除。如果没有找到,结果将是< VAR >-NOTFOUND。
还没有评论,来说两句吧...