首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CMake:添加构建目录以包含路径

您好!您提到的 CMake 是一个跨平台的自动化构建系统,它可以让开发者更方便地管理和构建软件。在 CMake 中,构建目录是用于存储构建过程中生成的文件和临时文件的目录。

CMake 的构建目录通常包含以下内容:

  • 生成的 Makefile 或其他构建工具的配置文件
  • 编译过程中生成的临时文件
  • 安装目录,包含构建后的可执行文件和库文件

要将构建目录添加到 CMake 项目中,可以使用以下命令:

代码语言:cmake
复制
add_subdirectory(directory)

其中,directory 是要添加的构建目录的路径。这个命令会将指定的目录添加到当前项目的构建过程中,并将其中的源文件编译到最终的可执行文件或库文件中。

在 CMake 中,构建目录的路径通常使用变量 ${CMAKE_BINARY_DIR} 表示,它指向当前构建目录的路径。例如,要将构建目录添加到当前项目中,可以使用以下命令:

代码语言:cmake
复制
add_subdirectory(${CMAKE_BINARY_DIR}/path/to/directory)

总之,CMake 的构建目录是用于存储构建过程中生成的文件和临时文件的目录,可以使用 add_subdirectory 命令将其添加到项目中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

cmake 添加头文件目录,链接动态、静态库

cmake 添加头文件目录,链接动态、静态库 cmake 添加头文件目录,链接动态、静态库 1. 添加头文件目录INCLUDE_DIRECTORIES 2....添加需要链接的库文件目录LINK_DIRECTORIES 3. 查找库所在目录FIND_LIBRARY 4. 添加需要链接的库文件路径LINK_LIBRARIES 5....cmake 添加头文件目录,链接动态、静态库 罗列一下cmake常用的命令。 CMake支持大写、小写、混合大小写的命令。 1....添加需要链接的库文件路径LINK_LIBRARIES 语法: link_libraries(library1 library2 ...) # 直接是全路径link_libraries...(“/home/server/third/lib/libcommon.a”) # 下面的例子,只有库名,cmake会自动去所包含目录搜索link_libraries(iconv)# 传入变量link_libraries

22.6K11

【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V ....博客资源 参考博客 : 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库...构建脚本的路径 , 是 CMake 工具内置的变量 # Android CMake 也内置了一些变量 , 如 ANDROID_ABI ${CMAKE_SOURCE_DIR...CMake 引入动态库 : 使用 set() , 指定一个 CMAKE_CXX_FLAGS 编译器参数 , 在编译器参数后添加 -L 参数指定动态库查找目录 ; # 设置变量 # CMAKE_CXX_FLAGS...CMake 构建脚本 CMakeList.txt 设置动态库查找路径 : # 设置变量 # CMAKE_CXX_FLAGS 表示会将 C++ 的参数传给编译器 # CMAKE_C_FLAGS 表示会将

8.6K20

NDK开发(一) :NDK入门指南

创建 CMake 构建脚本 如果您的原生源文件还没有 CMake 构建脚本,则您需要自行创建一个并包含适当的 CMake 命令。 必须将其命名为 CMakeLists.txt。...不过,为了确保 CMake 可以在编译时定位您的标头文件,您需要将 include_directories()命令添加CMake 构建脚本中并指定标头的路径: add_library(...)...将 find_library() 命令添加到您的 CMake 构建脚本中以定位 NDK 库。... Android 特定的日志支持库 为例,为了确保您的原生库可以在 log 库中调用函数,您需要使用 CMake 构建脚本中的 target_link_libraries()命令关联库: add_library...在您构建应用时,Gradle 会依赖项的形式运行 CMake 或 ndk-build,并将共享的库打包到您的 APK 中。

76140

解决CMAKE_CURRENT_SOURCE_DIR

解决CMAKE_CURRENT_SOURCE_DIR在使用CMake构建项目时,经常会用到 ​​CMAKE_CURRENT_SOURCE_DIR​​ 这个变量,用于获取当前源代码目录路径。...一种常见的方法是使用 ​​CMAKE_CURRENT_SOURCE_DIR​​ 来获取头文件所在目录路径。...${CMAKE_BINARY_DIR}/bin)# 添加可执行文件add_executable(MyExecutable src/main.cpp)# 包含头文件所在目录include_directories...而且,这种设置方式对于多级子目录也是适用的,可以确保在任何子目录中都能正确解析出头文件的路径CMake是一种跨平台的构建工具,用于生成和管理项目的构建脚本。...add_subdirectory:用于添加目录,指定子目录中的CMakeLists.txt文件。target_include_directories:用于设置包含目录

25630

CMake---优雅的构建CC++软件项目实践(1)

将给定的目录添加到编译器用于搜索包含文件(如头文件)的目录中,相对路径被解释为相对于当前源目录。...区别于TARGET_INCLUDE_DIRECTORIES,这个命令的作用只是作用于指定的目标,为指定的目标添加搜索路径。...CMAKE_SOURCE_DIR: 构建整个项目时,可能你依赖的第三方项目,这个变量的值就是最顶层CMakeLists.txt的路径。...在优雅的构建软件模板中,我们将版本信息放置于src/common/version.hpp文件中: 注:所有的文件路径都是相对项目根目录而言。...测试样例放于tests目录,并在该目录下建立CMakeLists.txt文件用于构建所有测试demo,并在主CMakeLists.txt下包含tests目录CMAKE_MINIMUM_REQUIRED

8K52

CMake学习笔记(二)——CMake语法

/build cmake ../ make 第一种方法是内部构建,第二种方法是外部构建。上述两种方法中,最大不同在于cmake与make的工作路径不同。...内部构建方法中,cmake生成的中间文件和可执行文件都会存放在项目目录中;外部构建方法中,中间文件与可执行文件都存放在build目录中。 笔者强烈建议使用外部构建方法。...binary_dir]:中间二进制与目标二进制存放路径; [EXECLUDE_FROM_ALL]:将这个目录从编译过程中排除; 这个指令用于向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置...该指令用于添加外部库的搜索路径。 10....安装路径可以是绝对/相对路径,若如果路径/开头,则是绝对路径,且绝对路径的情况下,CMAKE_INSTALL_PREFIX就无效了。

5.3K100

VS2008项目怎样添加“依赖(lib)”、“库目录(Libs)”、“包含目录(include)”和“引用动态链接库(dll)”

针对单个项目的方法 ---- 添加编译所需要依赖文件(lib) [解决方案资源管理器]项目->属性->配置属性->连接器->输入->附加依赖项里填写***.lib,多个 lib 空格隔开。...注意,填写路径尽量使用相对路径,这样便于工程的交流。...添加包含文件目录(include) [解决方案资源管理器] 项目->属性->配置属性->C/C++->常规->附加包含目录 步骤可以参考上图。...添加包含文件目录(include) [菜单]工具->选项->项目和解决方案->C++ 目录,选择对应平台,然后添加所需包括文件目录 步骤可以参考上图。 注意,经常用到的库和头文件才会用这种方式配置。...Debug模式为例,一般的VS工程有两个Debug目录,一个与sln文件平级(假设为Debug1),另一个在项目文件夹的下一级目录(假设为Debug2)。

1.9K30

Android NDK 开发之 CMake 必知必会

定义了 CMake 文件之后,就可以开始编译构建了。 CMake构建工程时会生成许多临时文件,避免让这些临时文件污染代码,一般会把它们放到一个单独的目录中。...最后同样地执行构建,在 build 目录下可以看到生成的库文件。 到这里,就基本可以使用 CMake构建 C/C++ 工程了。...使用 GLOB 和 GLOB_RECURSE 有好处,就是当添加需要编译的文件时,不用再一个一个手动添加了,同一目录下的内容都被包含在对应变量中了,但也有弊端,就是新建了文件,但是 CMake 并没有改变...指当前 CMake 文件的完整路径 PROJECT_SOURCE_DIR 指当前工程的路径 比如,在 add_library 中需要指定 cpp 文件的路径 CMAKE_CURRENT_SOURCE_DIR...这样就可以直接使用 #include "header.h" 的方式包含头文件,而不用 #include "path/path/header.h" 这样添加路径的方式来包含

1.4K20

CMake学习笔记合集

还是工程路径 HELLO_BINARY_DIR 编译路径 也就是 /root/cmake/bulid 让Hello World看起来更像一个工程 为工程添加一个子目录 src,用来放置工程源代码...添加一个子目录 doc,用来放置这个工程的文档 hello.txt 在工程目录添加文本文件 COPYRIGHT, README 在工程目录添加一个 runhello.sh 脚本,用来调用 hello...二进制 将构建后的目标文件放入构建目录的 bin 子目录 将 doc 目录 的内容以及 COPYRIGHT/README 安装到/usr/share/doc/cmake/ 将目标文件放入构建目录的 bin...子目录加入工程并指定编译输出(包含编译中间结果)路径为bin 目录 如果不进行 bin 目录的指定,那么编译结果(包括中间结果)都将存放在build/src 目录 更改二进制的保存路径 SET...目录/结尾:将这个目录中的内容安装到目标路径

2.2K20

CMake学习笔记

还是工程路径 2、HELLO_BINARY_DIR 编译路径 也就是 /root/cmake/bulid 让Hello World看起来更像一个工程 为工程添加一个子目录 src,用来放置工程源代码...添加一个子目录 doc,用来放置这个工程的文档 hello.txt 在工程目录添加文本文件 COPYRIGHT, README 在工程目录添加一个 runhello.sh 脚本,用来调用 hello...二进制 将构建后的目标文件放入构建目录的 bin 子目录 将 doc 目录 的内容以及 COPYRIGHT/README 安装到/usr/share/doc/cmake/ 将目标文件放入构建目录的 bin...子目录加入工程并指定编译输出(包含编译中间结果)路径为bin 目录 如果不进行 bin 目录的指定,那么编译结果(包括中间结果)都将存放在build/src 目录 更改二进制的保存路径 SET...DIRECTORY 后面连接的是所在 Source 目录的相对路径 注意:abc 和 abc/有很大的区别 目录名不以/结尾:这个目录将被安装为目标路径下的 目录/结尾:将这个目录中的内容安装到目标路径

2K20

CMake使用教程和原理

1.2 Cmake的使命 创建和源代码库隔离的构建目录,分离开发和构建目录。易于进行源代码版本控制。 CMake是具有管理依赖项,依赖之间的关系。...作用是把dir1, [dir2 …]这(些)个路径添加到当前CMakeLists及其子CMakeLists的头文件包含路径中; AFTER 或者 BEFORE 指定了要添加路径添加到原有包含列表之前或之后...若指定 SYSTEM 参数,则把被包含路径当做系统包含路径来处理 如果需要递归include文件夹及子文件夹的所有目录,用 add_subdirectory() 那target_inlucde_directories...比如被搜索的路径添加源文件,此时没有修改CMakeLists脚本,但是CMakeLists并不需要(没有)变化,构建系统无法察觉到新加的文件,除非手动重新运行cmake,否则新添加的文件就不会被编译到项目结果中...和include_directories()类似他,添加包含路径

10.7K296

Android JNI学习(二)——实战JNI之“hello world”

返回包含Android.mk目录路径。 include $(CLEAR_VARS) :CLEAR_VARS变量由Build System提供。...LOCAL_MODULE := ndkdemotest-jni:LOCAL_MODULE模块必须定义,表示Android.mk中的每一个模块。名字必须唯一且不包含空格。...由于CMake在搜索库路径的时候会包含系统库,并且CMake会检查它自己之前编译的库的名字,所以开发者需要保证开发者自行添加的库的名字的独特性。...创建后,目录如下: ? 创建源文件.png (二) 创建CMake构建脚本 因为目前这个项目没有CMake构建脚本,所以咱们需要自行创建一个并包含适当的CMake命令。...在构建应用时,Gradle会依赖项的形式运行CMake或ndk-build,并将共享的库打包到APK中。Gradle还是用构建脚本来了解将那些文件添加到Android 项目中。

2.1K42

CMake使用总结

PROJECT_SOURCE_DIR 工程的源文件目录,通常是包含CMakeLists.txt(有Project命令的)的目录。...message(${MY_VAR}) 构建类型 cmake默认支持多种构建类型(build type),每种构建类型都有专门的编译参数变量,详情见下表[1]: CMAKE_BUILD_TYPE 对应的...SRC_LIST) 查找src目录下所有cmake开头的文件并保存到CMAKE_FILES变量里 file(GLOB CMAKE_FILES "src/cmake*") file命令同时支持目录递归查找...${PROJECT_SOURCE_DIR}/lib 链接库的输出目录 set命令还可以设置自定义变量,比如 set(MY_GREETINGS "hello world") 包含目录和链接目录 将....还有一点,B.a会告诉CMake优先使用静态链接库libB.a,C.so会告诉CMake优先使用动态链接库libC.so,也可直接使用库文件的相对路径或绝对路径

1.7K10

CMake简介及使用实例

add_custom_target命令创建的目标 add_subdirectory命令 命令语法:add_subdirectory(source_dir[binary_dir] [EXCLUDE_FROM_ALL]) 命令简述:用于添加一个需要进行构建的子目录...(name1 [path1 path2 …]) 命令简述:用于查找包含文件 name1 的路径,如果找到则将路径保存在 VAR中(此路径为一个绝对路径),如果没有找到则结果为-NOTFOUND...表示 void* 的大小(例如为 4 或者 8),可以使用其来判断当前构建为 32位还是 64位CMAKE_CURRENT_LIST_DIR表示正在处理的 CMakeLists.txt文件的所在的目录的绝对路径...以上面的 HelloWorld工程来做解释: 在 HelloWorld目录下建立一个 Build目录(Build目录可以建立在任何地方) 进入 Build目录并进行外部构建 CMake .....(语法为 CMake ,这里使用 CMake .. 表明了 CMakeLists.txt在 Build目录的父目录中)。

2.4K21

CMake】Android Studio 中使用 CMake 编译单个 C++ 源文件 ( 常用的 CMake 命令解析 )

相对路径 : 指定源码路径, 注意是相对路径. 函数库个数据 : 可以定义多个函数库, CMake 会负责构建这些函数库....指定库名称 : CMake 的搜索路径默认包含了系统库, 只需要指定想添加的公共 NDK 库的名称即可, 这里指定 log 即可....下面的构建脚本作用 : 到预设的目录查找 log 库 , 将找到的路径赋值给 log-lib , 这个路径是 NDK 的 ndk-bundle\platforms\android-29\arch-arm..., 并存储该预编译库的路径到变量中, 这里存储到了 log-lib 变量中. # 指定库名称 : CMake 的搜索路径默认包含了系统库, 只需要指定想添加的公共 NDK 库的名称即可, 这里指定 log...native-lib.cpp ) # 搜索存储 : 搜索指定的预编译库, 并存储该预编译库的路径到变量中, 这里存储到了 log-lib 变量中. # 指定库名称 : CMake 的搜索路径默认包含了系统库

4.2K00
领券