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

24.9K11
  • 【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 表示会将

    9.2K20

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

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

    59500

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

    93240

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

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

    2.2K30

    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

    8.4K52

    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.5K20

    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/有很大的区别 目录名不以/结尾:这个目录将被安装为目标路径下的 目录/结尾:将这个目录中的内容安装到目标路径

    2.1K20

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

    43930

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

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

    5.5K100

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

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

    1.2K01

    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的目录目录进行本地安装实验。

    36800

    CMake使用教程和原理

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

    12.7K296

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

    定义语言和元数据——project() 从技术上讲,CMake 不需要project()命令。任何包含CMakeLists.txt文件的目录都会项目模式被解析。...更改嵌套的CMakeLists.txt文件不需要构建无关的目标。 路径仅限于目录本地,如果需要,它们甚至可以添加到父级包含路径中。...我们可以添加自定义路径,我们希望编译器检查。CMake 将在生成的构建系统中为编译器调用添加它们。它们将用适合特定编译器的标志提供(通常是-I)。...* 在前一个示例中,我使用了一个内置的头文件;然而,你可以很容易地添加自己的头文件,带有类或函数定义:* header.h被视为相对于当前源目录的,并将使用绝对路径包含进来。...两个目标都需要适当地设置它们的包含路径确保编译器能够找到这些头文件。 Unity 构建 CMake 3.16 还引入了另一个编译时间优化功能——统一构建,也称为统一构建或巨构建

    56700
    领券