在CMake中,include_directories函数用于指定头文件的搜索路径。然而,include_directories函数并不会帮助查找头文件,它只是告诉编译器在哪些目录中搜索头文件。 要解决头文件查找的问题,可以使用以下方法: 使用find_package命令:find_package命令用于查找和加载外部库或工具包。通过指定合适的参数,可以让CMake自动查找并...
find_package(Qt COMPONENTS QtOpenGL QtXml REQUIRED) 1. 在包为可选项时可以省略关键词REQUIRED。这样就可以使用变量<PACKAGE>_<COMPONENTS>_FOUND,例如Qt_QtXml_FOUND,来检查对应组建是否被找到。 3.包查找的机制 find_package()命令会查找moudle目录下的Find <name>.cmake文件。 首先,CMake查找${CMAKE_MODULE_...
include_directories(${Sophus_INCLUDE_DIRS}) target_link_libraries(useSophus ${Sophus_LIBRARIES}) 我们怎么知道要连接Sophus_INCLUDE_DIRS,Sophus_LIBRARIES,而不是SOPHUS_INCLUDE_DIRS,SOPHUS_LIBRARIES或其他,其实 find_package主要是找到.cmake文件,然后这些变量在.cmake 里面定义了,我们看Sophus/SophusConfig.cmak...
FIND_PACKAGE_HANDLE_STANDARD_ARGS:<LibaryName>_FOUND find_path:获得<LibaryName>_INCLUDE_DIR目录。 find_library:获得<LibaryName>_LIBRARY 目录。 结合前面的include_directories/link_libraries引用对应的<LibaryName>_INCLUDE_DIR/<LibaryName>_INCLUDE_DIR就引入第三方库了。 配置选项 option/cmake_dependent_op...
for CMake >= 2.8.11 因此,我认为include_directories()在find_package(OpenCV)完成时已经执行。
package()指向目录),或者从安装目录(运行make INSTALL将构建的内容复制到安装目录,并将find_package(...
然后将find_package()指向目录),或者从安装目录(运行make INSTALL将构建的内容复制到安装目录,并将...
使用环境变量设置include_directories的应用场景包括: 多个项目共享同一套头文件:如果有多个项目共享同一套头文件,可以将头文件所在的目录添加到环境变量中,然后在每个项目的CMakeLists.txt文件中使用include_directories命令来设置头文件搜索路径。 切换不同的编译环境:如果需要在不同的编译环境中切换,可以通过设置不同的...
项目leveldb 和 basiccache, basiccache依赖 leveldb,下载都是在主项目中, 设置INTERFACE_INCLUDE_DIRECTORIES后, 在basiccache中都不需要find_package了 set( leveldb_INCLUDE_DIR"${CMAKE_CURRENT_SOURCE_DIR}/include")set( leveldb_INCLUDE_DIRS"${CMAKE_CURRENT_SOURCE_DIR}/include")ADD_LIBRARY(leveldb STA...