首页
学习
活动
专区
工具
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.7K11

【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

面向 C++ 的现代 CMake 教程(四)

- header.h |- main.cpp 首先,我们需要设置项目并将cmake目录添加到模块路径中,这样我们稍后才能包含它: 第九章/01-格式化/CMakeLists.txt cmake_minimum_required...作为提醒:构建树是目标/输出目录路径,源树是您的源代码所在的路径。 向您的项目添加 Doxygen 能够从 C++源代码生成文档的最著名且最受欢迎的工具之一是 Doxygen。...我们需要的是一个算法,能够检测平台并填充安装目录变量提供适当的路径CMake 通过提供GNUInstallDirs实用模块简化了此操作,该模块处理大多数平台并相应地设置安装目录变量。...请注意,我们的源路径一个/符号结束,表示我们不想复制data目录本身,只想它的内容。 第二个案例正好相反:我们不添加尾随的/,因为目录应该被包含。...文件,并正确地包含了它,*include 目录*的路径设置为遵循所选的前缀。

23200

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 中。

76740

解决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:用于设置包含目录

26730

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

面向 C++ 的现代 CMake 教程(一)

与 GNU Make 等工具相比,这确保了源代码目录中不会包含任何与构建相关的文件,并避免了使用-S选项后跟生成构建系统的目录路径的污染: cmake -S ./project -B ....我们可以为项目配置中指定的安装路径添加一个自定义前缀(例如,当我们对某些目录的写入权限有限时)。...由于脚本中没有源/构建树的概念,通常持有这些路径引用的变量将包含当前工作目录CMAKE_BINARY_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR和CMAKE_CURRENT_SOURCE_DIR...作为提醒:构建树是目标/输出目录路径,源树是您的源代码所在的路径。...在成功时,它将填充包含成功包含的文件的完整路径,或在失败时(NOTFOUND)不包含。 当脚本模式运行时,任何相对路径都将从当前工作目录解析。

36801

面向 C++ 的现代 CMake 教程(五)

此外,我们将在另外两个目录中拥有我们的文件: 项目根目录包含顶级配置和关键项目文档文件 用于所有实用模块和帮助文件的cmake目录CMake 使用这些文件来构建和安装项目: 图 12.3...) include(Install) 我们首先提供关键项目详情,并添加CMake 实用模块的路径(我们项目中的cmake目录)。...然后我们禁用源内构建(通过自定义模块),并包括两个关键目录: src,包含项目源代码(在构建树中将被命名为bin) test,包含所有的测试工具 最后,我们包含另一个模块,将设置项目的安装。...它还通过PUBLIC_HEADER属性引用calc.h头文件,该属性可以在配置的包含目录中找到(感谢生成器表达式提供特定模式的适当路径——构建或安装)。...用户,我们可以轻松地解开里面正在发生的事情: 包含 CMake 模块获取 FTXUI 依赖。

6200

学习了CC++,居然不了解Cmake这一利器

,-B 选项后面跟着的是构建目录路径,会在当前工作目录下创建(如果不存在的话)并使用这个目录来存放生成的构建系统文件。...add_definitions(-DENABLE_FEATURE_X -ISDEBUG) 6、添加 include 目录 源代码中包含多个头文件,可以通过 include_directories 添加头文件所在的...include 目录,这个命令会将指定的目录添加到编译器的头文件搜索路径中,使得在编译源代码时,编译器能够找到这些目录下的头文件。.../cmake-demo/maindemo cmake -B cmake-demo:用来初始化构建过程并生成构建系统文件,-B cmake-demo 表示构建路径cmake-demo,即生成的构建文件在...&& cd - cd cmake-demo && ctest && cd -:执行单元测试 cd cmake-demo:切换当前工作目录cmake-demo 构建目录; ctest:在构建目录中运行

9910

CMake 秘籍(六)

DEBUG_POSTFIX "_d": 这告诉 CMake,如果我们Debug配置构建项目,则要在生成的共享库中添加_d后缀。...安装指令中的各种目的地被解释为相对路径,除非使用绝对路径。但是相对于什么?CMake 可以根据触发安装的工具不同的方式计算绝对路径。当我们使用cmake --build ....调整本地路径指向包含setup.py脚本的目录: $ pipenv install /path/to/cxx-example 现在我们在 Pipenv 环境中启动一个 Python shell:...调整本地路径指向包含setup.py脚本的目录: $ pipenv install /path/to/fortran-example 现在我们在 Pipenv 环境中启动一个 Python shell...将构建目录命名为build_conda的动机与前面的节类似:特定的构建目录名称使得更容易基于可能已经包含名为build的目录目录进行本地安装实验。

13500

CMake使用教程和原理

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

10.8K296
领券