add_executable(test main.cpp) 在父目录下调用cmake .构建之后,在output目录或sub目录下不会出现libsub.a库,说明当指定EXCLUDE_FROM_ALL选项,子目录的目标文件不会生成。 场景4:父目录CMakeLists.txt的add_subdirectory指定了EXCLUDE_FROM_ALL选项,且父目录的目标文件依赖子目录的目标文件。 # 父目录下的CMakeLi...
使用add_subdirectory的优势是可以模块化地管理项目的各个部分,使项目结构更加清晰和可维护。通过将项目分割为多个子目录,可以独立地对每个子目录进行构建、测试和部署,提高了项目的灵活性和可扩展性。 add_subdirectory的应用场景包括但不限于以下情况: 当项目由多个模块组成,每个模块都具有自己的构建配置时,可以将每个...
3.1 add_subdirectory的作用 add_subdirectory(添加子目录)是CMake中的一个命令,它允许我们将项目分解成更小、更易于管理的部分。从心理学的角度看,人类的大脑更善于处理结构化和分段的信息。这就是为什么我们更容易记住有结构的列表,而不是随机的事实。 在CMake中,当你使用add_subdirectory(src)命令时,你实际上是...
每次调用add_subdirectory()时它都会改变,并在add_subdirectory()返回时再次恢复。 一个例子应该有助于演示这种行为: Top level CMakeLists.txt cmake_minimum_required(VERSION3.0)project(MyApp)message("top: CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}")message("top: CMAKE_BINARY_DIR = ${CMAKE_BINARY_D...
add_subdirectory命令允许我们将一个子目录添加到构建中,并在该子目录中查找CMakeLists.txt文件。这样可以使项目结构更加清晰,更加模块化,方便维护和扩展。在Android Studio中,通常会将不同的功能或模块组织在各自的子目录下。 准备工作 在开始之前,确保你已经安装了Android Studio,并创建了一个新的项目。你还需要确保...
CMake:add_subdirectory(...)隐含的用法 在CMake中有add_executable(main main.c),给可执行程序链库时,要使用target_link_libraries(...)给main链库,但该command不能使用相对路径,若最顶层的project与subproject在同一个文件夹中,需要使用link_directories(...)来显式指明要链接的库所在的路径,可以使用相对路径...
在CMake中,通过使用add_subdirectory()命令可以添加子目录。这使得我们可以将项目划分为多个模块,并在每个子目录中管理自己的源文件和构建规则。 在主项目的CMakeLists.txt中,通过add_subdirectory()命令引入子目录: add_subdirectory(submodule1)add_subdirectory(submodule2) ...
CMake中的add_subdirectory命令用于将子目录添加到构建,其格式如下: add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL] [SYSTEM]) 1. source_dir指定源CMakeLists.txt和代码文件所在的目录。如果它是相对路径,则将相对于当前目录(典型用法)对其进行评估,但它也可能是绝对路径。binary_dir指定放置输出...
add_subdirectory:这个CMake指令用于添加子目录。在生成的Makefile中,这个指令会导致生成一个新的Makefile文件在对应的子目录中。 通过理解CMake与Makefile的对应关系,我们可以更好地理解CMake的工作原理,以及如何编写有效的CMakeLists.txt文件。在下一章节中,我们将进一步探讨CMake构建过程的底层原理。