该文件添加了下面的内容:add_subdirectory指明本项目包含一个子目录 math,这样 math 目录下的 CMakeLists.txt 文件和源代码也会被处理 。使用命令target_link_libraries指明可执行文件 main 需要连接一个名为 MathFunctions 的链接库 。 子目录中的 CMakeLists.txt: # 查找当前目录下的所有源文件 # 并将名称保存...
该目录必须有自己的CMakeLists.txt文件,该文件将在add_subdirectory()被调用的地方进行处理,并在项目的构建树中为它创建一个相应的目录。 add_subdirectory(sourceDir [ binaryDir ] [ EXCLUDE_FROM_ALL ]) 1. sourceDir不一定是源树中的子目录,尽管它通常是。可以添加任何目录,sourceDir可以指定为绝对路径或相对路...
进入子目录src,建立一个CMakeLists.txt,其内容如下: ADD_EXECUTABLE(hello main.c) # 换个地方保存目标二进制文件SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) t2工程的CMakeLists.txt修改为: PROJECT(HELLO) # 向当前工程添加源文件的子目录 src # 并指定中间二进制文件和目标二进制文件存放的位置...
因为我们将编译的东西放在了build中,实际上这个build的绝对路径就是HELLO_BINARY_DIR和HELLO_SOURCE_DIR的值,而我们在t2目录下的CMakeLists.txt中添加的 ADD_SUBDIRECTORY(src bin),实际上src就是表示存放C源文件的文件夹,然后后面的bin就是表示这个bin是在build文件夹中添加一个子目录bin来存放src编译之后的二进制...
本篇介绍了不同目录下有多个源文件时如何编写CMakeLists.txt。 对于不同文件夹下的多个源文件,主要是使用include_directories来添加头文件的搜索目录 cmake_minimum_required (VERSION 2.8)project (sum_test)include_directories (func)add_executable(sum_test main.c func/sum.c) 1. 2. 3. 4...
根目录的CMakeLists.txt cmake_minimum_required(VERSION3.13)project(Hello)set(module_name"hello")# 查找指定目录下的所有源文件,然后将结果存进指定变量名aux_source_directory(. SRC_LIST)include_directories("${PROJECT_SOURCE_DIR}/math")# 添加 math 子目录add_subdirectory(math)add_executable(${module_...
1、大型工程多目录结构,添加源文件目录 ADD_SUBDIRECTORY 指令 ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL]) 这个指令用于向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存 放的位置。EXCLUDE_FROM_ALL 参数的含义是将这个目录从编译过程中排除,比如,工程 的 example,可能就...
当CMake处理一个项目时,入口点是一个名为CMakeLists.txt的源文件,这个一定是根目录下的CMakeLists.txt。这个文件包含整个工程的构建规范,当我们有多个子文件夹需要编译时,使用add_subdirectory()命令来为构建添加子目录。添加的每个子目录也必须包含一个CMakeLists.txt文件作为该子目录的入口点。每个子目录的CMake...
首先,在 CMake 中,我们应该将构建相关的内容与源代码分开,所以先创建一个构建目录: mkdirbuild 然后我们可以在构建目录中进行所有与构建相关的操作: cdbuild 从这一步开始,我们将执行多个构建相关的任务。 先是生成配置文件: cmake .. 在这一步中,CMake 会生成平台特定的配置文件。在我的 Ubuntu 系统中,我看...