add_subdirectory(sub output) 在父目录下调用cmake .构建之后,在output目录下会出现libsub.a库,sub目录下则没有libsub.a。说明当指定binary_dir,输出目标文件就会放到binary_dir目录下。 场景3:父目录CMakeLists.txt的add_subdirectory指定了EXCLUDE_FROM_ALL选项。 # 父目录下的CMakeLists.txt cmake_minimum_re...
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命令用于将子目录添加到构建,其格式如下: 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构建过程的底层原理。
有没有办法将这两步合成一步呢?答案当然是有的,这里我们再引入一个命令add_subdirectory,这个命令的作用就是跳转到子目录执行CMakeLists.txt。上面我们在lib目录下创建的CMakeLists.txt文件还是保留,但里面的内容我们作一点调整,调整后的内容如下: file(GLOB SRC_FILES *.c) ...