CMakeTutorial_Step1_CMakeLists.txt
# TODO 1: Set the minimum required version of CMake to be 3.10 cmake_minimum_required(VERSION 3.10) # TODO 2: Create a project named Tutorial project(Tutorial VERSION 1.0) # TODO 7: Set the project version number as 1.0 in the above project command # When this command is called, CMake defines Tutorial_VERSION_MAJOR and Tutorial_VERSION_MINOR behind the scenes. # Tutorial_VERSION_MAJOR 和 Tutorial_VERSION_MINOR 通常是用于表示项目的主版本号和次版本号的变量 # TODO 6: Set the variable CMAKE_CXX_STANDARD to 11 # and the variable CMAKE_CXX_STANDARD_REQUIRED to True set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) # TODO 8: Use configure_file to configure and copy TutorialConfig.h.in to # TutorialConfig.h configure_file(TutorialConfig.h.in TutorialConfig.h) #configure_file 是 CMake 中的一个命令,用于从模板文件生成配置文件。它会读取一个输入文件(通常带有 .in 后缀),替换其中的变量,然后将结果写入到输出文件中。 #模板文件通常位于CMakeLists.txt所在的源目录,即${CMAKE_SOURCE_DIR} #配置文件的位置通常位于CMake的二进制目录(构建目录)中,即${CMAKE_BINARY_DIR} #configure_file()需要模板文件已经存在,不需要输出文件已经存在 # #TutorialConfig.h.in在 项目根目录/Step1 中 #该文件中:会有@PROJECT_NAME@,@VERSION@等格式的变量 #复制该文件中的内容,并将这些变量替换为相应的值,生成文件TutorialConfig.h #TutorialConfig.h 在 项目根目录/Step1_build 中 # TODO 3: Add an executable called Tutorial to the project add_executable(Tutorial tutorial.cxx) # Hint: Be sure to specify the source file as tutorial.cxx # TODO 9: Use target_include_directories to include ${PROJECT_BINARY_DIR} target_include_directories(Tutorial PUBLIC "${PROJECT_BINARY_DIR}") #这行代码的意思是将 ${PROJECT_BINARY_DIR} 目录添加到 Tutorial 目标的公共包含路径中。 #项目的二进制目录${PROJECT_BINARY_DIR}是指 CMake 构建系统生成的所有构建文件(如编译后的目标文件、可执行文件、库文件等)所在的目录。这个目录通常是在运行 CMake 配置命令时指定的。 #这里是Step1_build目录 #message("Binary directory: ${PROJECT_BINARY_DIR}") #Binary directory: H:/develop/code/Learn/LearnCMake/cmake-3.31.2-tutorial-source/Step1_build #包含路径是编译器在编译源代码时查找头文件(.h 或 .hpp 文件)的位置 #这次源代码需要的头文件TutorialConfig.h的位置在Step1_build中,也就是${PROJECT_BINARY_DIR} #因此需要将该位置添加为包含路径 #PUBLIC是指定包含路径为公共包含路径, 说明目标Tutorial和目标的依赖项都可以使用该包含路径
分类:
学习过程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?