这里介绍常用的三种指令add_library、target_link_libraries和link_directories,该笔记主要参考了cmake官网给的教程,如有需要请访问以下网址: https://cmake.org/cmake/help/v3.1/ 1. add_library 该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去。该指令常用的语法如下: add_library(<name>[...
命名的 <target> 必须是由 add_executable() 或 add_library() 等命令创建的. 11.target_include_directories:指定编译给定目标时要使用的包含目录或目标。切目标必须由 add_executable() or add_library()创建 12.find_library: FIND_LIBRARY(my_ceres libceres.so /home/wenhaolun/ubuntu18.04_lib/ceres/)该...
该命令给指定的目标文件添加头文件搜索目录,所以<target>必须用add_executable()或add_library()等命令先创建出来,和include_directories的主要差别是: include_directories会对当前CMakeLists.txt文件的目标文件生效,并会通过add_subdirectory调用传递到子目录;target_include_directories则针对指定的目标文件生效。 target_i...
目标由add_library()或add_executable()生成。 这三个指令类似,这里以target_include_directories()为例进行讲解。 2. 指令讲解 测试工程目录结构: cmake-test/ 工程主目录,main.c 调用 libhello-world.so ├──CMakeLists.txt ├── hello-world 生成 libhello-world.so,调用 libhello.so 和 libworld.so...
项目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...
相反,您应该按以下方式定义导入的目标。这可以放在主CMakeLists.txt或ext/CMakeLists.txt中(在这种...
include_directories(dir):将给定目录添加到编译器用于搜索包含文件的目录中。这些目录将添加到当前CMake...
1、include_directories添加的目录,会自动添加到当前所在的CMakeLists.txt文件的INCLUDE_DIRECTORIES目录属性,以及在当前CMakeLists.txt文件中定义的目标(通过add_executable/add_library等添加的目标)属性INCLUDE_DIRECTORIES中。 2、include_directories添加的目录,会传递到当前所在CMakeLists.txt文件中通过add_subdirectory增...
include_directories(AFTER /usr/include) ``` 这个例子中,首先将项目的include目录添加到头文件搜索路径中,然后将系统的/usr/local/include目录添加到搜索路径中,并标记为系统路径,最后将系统的/usr/include目录添加到搜索路径中,默认为在已有路径的后面添加。 include_directories通常与add_executable或add_library一起...
这通常是在你定义可执行文件或库的目标(add_executable或add_library)之后。 使用include_directories()命令添加路径: 在CMakeLists.txt文件中,使用include_directories()命令来添加你需要包含的include路径。例如,如果你有一个头文件目录/path/to/headers,你可以这样写: cmake include_directories(/path/to/headers) ...