【摘要】 解决CMAKE_CURRENT_SOURCE_DIR在使用CMake构建项目时,经常会用到 CMAKE_CURRENT_SOURCE_DIR 这个变量,用于获取当前源代码目录的路径。然而,有时候在项目中存在多级子目录的情况下,CMAKE_CURRENT_SOURCE_DIR 变量可能无法正确解析。 本文将介绍一种解决 CMAKE_CURRENT...
通过上述的方法,我们可以解决 CMAKE_CURRENT_SOURCE_DIR 变量无法正确解析的问题。使用 CMAKE_CURRENT_LIST_DIR 变量来代替 CMAKE_CURRENT_SOURCE_DIR 变量,能够确保无论在多级子目录中的哪个位置,都能正确获取到当前源代码目录的路径,更加方便使用CMake构建项目。 假设...
PROJECT_SOURCE_DIR:工程的根目录 PROJECT_BINARY_DIR:运行cmake命令的目录,通常为${PROJECT_SOURCE_DIR}/build PROJECT_NAME:返回通过 project 命令定义的项目名称 CMAKE_CURRENT_SOURCE_DIR:当前处理的 CMakeLists.txt 所在的路径 CMAKE_CURRENT_BINARY_DIR:target 编译目录 CMAKE_CURRENT_LIST_DIR:CMakeLists.tx...
CMAKE_CURRENT_BINARY_DIR:正在处理的构建目录。 命令add_subdirectory() 会添加一层构建目录到构建树。 CMAKE_CURRENT_SOURCE_DIR:正在处理的源码目录。 当运行 cmake -p 时,上述变量会被设为当前工作目录。 PROJECT_SOURCE_DIR:当前目录或父目录中最后一次执行 project() 的目录,即工程的根目录。子目录中执行...
CMAKE_CURRENT_SOURCE_DIR 代表当前 CMakelists.txt 所在的目录。 CMAKE_SOURCE_DIR 代表顶层 CMakeLists.txt 所在的目录。(不建议使用,无法作为子项目使用) 更多变量和内容可以查看 project 语句的官方文档cmake.org/cmake/help/la C++ 标准变量 CMAKE_CXX_STANDARD set(CMAKE_CXX_STANDARD 17) # 设置 C++...
将文件夹下所有文件输出到日志文件中(包括所有子文件夹下的)
<projectname>_SOURCE_DIR 这三个变量只待的内容都是指工程顶层目录。 CMAKE_CURRENT_SOURCE_DIR 指的是当前处理的CMakeLists.txt所在的路径。 CMAKE_CURRENT_BINARY_DIR 如果是 in source编译,则跟CMAKE_CURRENT_SOURCE_DIR一致,如果是out source是target的编译目录,ADD_SUBIRECTORY(src bin)可以更改这个变量的...
如果是 in-source 编译,它跟 CMAKE_CURRENT_SOURCE_DIR 一致,如果是 out-of-source 编译,他指的是 target 编译目录。 使用我们上面提到的 ADD_SUBDIRECTORY(src bin)可以更改这个变量的值。 使用SET(EXECUTABLE_OUTPUT_PATH <新路径>)并不会对这个变量造成影响,它仅仅修改了最终目标文件存放的路径。
add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL]) 一共有三个参数,后两个是可选参数. source_dir 源代码目录 指定一个包含CMakeLists.txt和代码文件所在的目录,该目录可以是绝对路径,也可以是相对路径,对于后者相对路径的起点是CMAKE_CURRENT_SOURCE_DIR。此外,如果子目录再次包含的CMakeLists.txt...
add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL]) 一共有三个参数,后两个是可选参数. source_dir 源代码目录 指定一个包含CMakeLists.txt和代码文件所在的目录,该目录可以是绝对路径,也可以是相对路径,对于后者相对路径的起点是CMAKE_CURRENT_SOURCE_DIR。此外,如果子目录再次包含的CMakeLists.txt...