Cmake 实践PROJECT(HELLO) ADD_SUBDIRECTORY(src bin) 然后建立 build 目录,进入 build 目录进行外部编译。 cmake .. make 构建完成后,你会发现生成的目标文件 hello 位于 build/bin 目录中。 语法解释: ADD_SUBDIRECTORY 指令 ADD_SUBDIRECTORY(source_dir [binary_dir] 并且,即使外部编译,子目录体系仍然会被保存。 如果我们在上面的例子中将 ADD_SUBDIRECTORY (src bin)修改为 SUBDIRS(src)。 那么在 build 目录中将出现一个 src 目录,生成的目标代码 hello 将存放在 src 目录中。 3,换个地方保存目标二进制 不论是 SUBDIRS 还是 ADD_SUBDIRECTORY 指令(不论是否指定编译输出目录),我们都可 以通过 SET sh DESTINATION bin) 3,安装 doc 中的 hello.txt,这里有两种方式:一是通过在 doc 目录建立 CMakeLists.txt 并将 doc 目录通过 ADD_SUBDIRECTORY 加入工程来完成。另一种方法 是直接在工程目录通过 INSTALL(DIRECTORY 来完成),前者比较简单,各位可以根据兴趣自己完成,我们来尝试 后者,顺便演示以下 DIRECTORY0 码力 | 47 页 | 264.27 KB | 1 年前3
CMakeLists.txtadd_subdirectory(01HelloApprovals) add_subdirectory(02GildedRose) add_subdirectory(03LogFiles) add_subdirectory(04SVGFiles) add_subdirectory(05QTableWidget) add_subdirectory(06QImage)0 码力 | 1 页 | 184.00 B | 6 月前3
CMakeLists.txtadd_subdirectory(async_initiate) add_subdirectory(basic) add_subdirectory(complete) add_subdirectory(no_service) add_subdirectory(service)0 码力 | 1 页 | 139.00 B | 6 月前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南• 在根项目的 CMakeLists.txt 中,设置了默 认的构建模式,设置了统一的 C++ 版本 等各种选项。然后通过 project 命令初始 化了根项目。 • 随后通过 add_subdirectory 把两个子项 目 pybmain 和 biology 添加进来(顺序 无关紧要),这会调用 pybmain/CMakeLists.txt 和 biology/CMakeLists org/cmake/help/latest/command/function.html https://cmake.org/cmake/help/latest/command/macro.html include 和 add_subdirectory 的区别 • include 相当于直接把代码粘贴过去,直接访问调用者的作用域。这里创建的变量和外面共 享,直接 set(key val) 则调用者也有 ${key} 这个变量了。 如果为空说明你变量名打错了, CMake 特色就是找不到变量不报错,而是视为空字符串。 • 去看一下 FindXXX.cmake 里的注释(那就是文档),到底是什么名字。 少见的 add_subdirectory 邪教 • 大部分第三方库都需要提前安装好,然后再 find_package 找到他,然后才能链接。 • 也有少数第三方库为了方便,还支持作为子项目加到你的项目中来,这种就不需要 ::0 码力 | 56 页 | 6.87 MB | 1 年前3
CMakeLists.txtadd_subdirectory(catch2) add_subdirectory(approval_tests_cpp) add_subdirectory(approval_tests_cpp_qt)0 码力 | 1 页 | 102.00 B | 6 月前3
CMake Configuration for Demo Project"/opt/local/*" "third_party/*" ) endif () add_subdirectory(shared_code) add_subdirectory(third_party) enable_testing() add_subdirectory(demos) # See https://stackoverflow.com/questions/410 码力 | 1 页 | 1.23 KB | 6 月前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起文件夹下了,里面的 CMakeLists.txt 定义了 hellolib 的生成规则。 • 要在根目录使用他,可以用 CMake 的 add_subdirectory 添加子目录,子目录也包含一 个 CMakeLists.txt ,其中定义的库在 add_subdirectory 之后就可以在外面使用。 • 子目录的 CMakeLists.txt 里路径名(比如 hello.cpp )都是相对路径,这也是很方便的一 缺点:函数直接实现在头文件里,没有提前编译,从而需要重复编译同样内容,编译时间长。 glm - 使用这个神奇的数学库 第三方库 - 作为子模块引入 • 第二友好的方式则是作为 CMake 子模块引入,也就是通过 add_subdirectory 。 • 方法就是把那个项目(以 fmt 为例)的源码放到你工程的根目录: • 这些库能够很好地支持作为子模块引入: 1. fmtlib/fmt - 格式化库,提供 std::format0 码力 | 32 页 | 11.40 MB | 1 年前3
C++20 Modules: The Packaging and Binary Redistribution Storymechanical issue compilation terminated.BMI compatibility (cont’d) add_subdirectory(flux) add_subdirectory(fmt) add_subdirectory(argparse) add_library(foo) target_sources(foo PUBLIC FILE_SET0 码力 | 76 页 | 2.09 MB | 6 月前3
Debian 维护者指南cmake_minimum_required(VERSION 2.8) project(debhello) set(PACKAGE_AUTHOR "Osamu Aoki") add_subdirectory(src) add_subdirectory(man) $ cat debhello-1.7/man/CMakeLists.txt install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/hello cmake_minimum_required(VERSION 2.8) project(debhello) set(PACKAGE_AUTHOR "Osamu Aoki") add_subdirectory(lib) add_subdirectory(src) add_subdirectory(man) $ cat debhello-2.1/man/CMakeLists.txt install( FILES ${CMAKE_0 码力 | 142 页 | 1.11 MB | 1 年前3
CMake Configuration for Asio Basic Library and Testscppcon_add_library(basic LIBRARIES Asio::asio) add_subdirectory(tests)0 码力 | 1 页 | 71.00 B | 6 月前3
共 80 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













