ContentsCMakeInstructionsBasics(Step1)Addversionnumberandconfigurationheaderfiletospecify(used)c++standardBuildandTest添加一个库AddingaLibrary(Step2)AddingUsageRequirementsforLibrary添加一个库的使用要求(Step3)Installing和测试Installation&Testing(Step4)InstallRulesInstallationRulesTestingSupportTestSupportAddingSystemIntrospectionAddingSystem(?Introspection)(Step5)SpecifyCompileDefinitionSpecifyCompilationDefinition添加自定义命令和生成的文件添加自定义命令和生成的文件(第6步)构建安装程序(第7步)添加对仪表板(控制面板?)的支持(第8步)混合静态和共享混合静态和共享(第9步)添加生成器表达式添加生成Express(第10步)添加导出配置添加导出配置(第11步)导入CMake项目导入CMake项目(消费者用户)打包调试和发布包调试和发布(MultiPackage)CMake说明提供了分步说明遵循涵盖常见构建系统问题的教程CMake帮助解决的问题。了解各种主题如何在一个示例项目中一起工作会很有帮助。示例的教程文档和源代码可以在CMake源代码树的Help/guide/tutorial目录中找到。每一步都有自己的包含可用作起点的代码的子目录(subdirectory)。教程示例是渐进的,因此每个步骤都为上一步提供完整的解决方案。基本起点(第1步)最基本的项目是编译可执行源代码。对于最简单的示例,一个三行的CMakeLists.txt文件就足够了。这是我们教程的开始。在Step1文件夹中创建一个CMakeLists.txt文件:自己创建...cmake_minimum_required(VERSION3.10)#设置项目名称project(Tutorial)#添加可执行文件add_executable(Tutorialtutorial.cxx)注意本例中使用小写命令CMakeLists.txt文件。CMake支持大写、小写和混合大小写命令。不区分大小写Step1目录中提供了tutorial.cxx的源代码,可用于计算数字的平方根。//计算数字平方根的简单程序#include#include#includeintmain(intargc,char*argv[]){if(argc<2){fprintf(stdout,"Usage:%snumber\n",argv[0]);返回rn1;}双输入值=atof(argv[1]);双outputValue=sqrt(inputValue);fprintf(stdout,"%g的平方根是%g\n",inputValue,outputValue);return0;}添加版本号和配置我们将添加的第一个功能是为我们的可执行文件和项目提供版本号。虽然我们可以在源代码中完全做到这一点,但使用CMakeLists.txt提供了更大的灵活性。首先,修改CMakeLists.txt文件以设置版本号。为了增加版本号,我们可以更改CMakeLists文件cmake_minimum_required(VERSION3.10)#设置项目名称和版本号project(TutorialVERSION1.0)然后,配置一个头文件,将版本号传递给源码:Configure头文件并将版本号传递给源代码configure_file(TutorialConfig.h.inTutorialConfig.h)由于配置文件将被写入二叉树,我们必须将该目录添加到搜索包含文件的路径列表中.将以下行添加到CMakeLists.txt文件的末尾:target_include_d目录(TutorialPUBLIC"${PROJECT_BINARY_DIR}")使用你喜欢的编辑器,在源码目录中创建TutorialConfig.h.in,内容如下:在源代码目录中创建TutorialConfig.h.in文件//Tutorial#的配置选项和设置defineTutorial_VERSION_MAJOR@Tutorial_VERSION_MAJOR@#defineTutorial_VERSION_MINOR@Tutorial_VERSION_MINOR@当CMake配置这个头文件时@Tutorial_VERSION_MAJOR@和@Tutorial_VERSION_MINOR@的值将被替换。接下来修改tutorial.cxx以包含配置的头文件,TutorialConfig.h。最后,让我们打印出来通过更新tutorial.cxx的版本号如下://计算数字平方根的简单程序#include#include#include#include#include"TutorialConfig.h.in"intmain(intargc,char*argv[]){if(argc<2){std::cout<<"用法:"<.constdoubleinputValue=std::stod(argv[1]);我们需要在CMake代码中明确声明它应该使用正确的标志。在CMake中启用对特定C++标准的支持的最简单方法是使用CMAKE_CXX_STANDARD变量。对于本教程,将CMakeLists.txt文件中的CMAKE_CXX_STANDARD变量设置为11并将CMAKE_CXX_STANDARD_REQUIRED设置为True:cmake_minimum_required(VERSION3.10)#settheprojectnameandversionproject(TutorialVERSION1.0)#指定C++标准rdset(CMAKE_CXX_STANDARD11)set(CMAKE_CXX_STANDARD_REQUIREDTrue)Build和TestRuncmake或cmake-gui来配置项目,然后使用您选择的构建工具构建它。例如,我们可以从命令行导航到CMake源代码树的Help/guide/tutorial目录并运行以下命令:mkdirStep1_buildcdStep1_buildcmake../Step1cmake--build。很好,果然不出我所料,没有错误是不可能的(shift)我不想升级我修改了版本号cmake_minimum_required(VERSION3.5)再来,往下看导航到建教程的目录(可能是make目录或者aDebugorReleasebuildconfigurationsubdirectory)andrunthesecommands:Tutorial4294967296Tutorial10Tutorial非常好,再回头看是错误的,首先是我生成文件的地方不对,但这不是很重要然后我没有构建...然后我只是按照教程它真的不起作用,我还不知道为什么,但是添加./很好./Tutorial4294967296./Tutorial10./Tutorial哦,最后查看所有文件的最终状态CMakeLists.txtcmake_minimum_required(VERSION3.5)#settheprojectnameproject(TutorialVERSION1.0)#specifytheC++standardset(CMAKE_CXX_STANDARD11)set(CMAKE_CXX_STANDARD_REQUIREDTrue)configure_file(TutorialConfig.h.inTutorialConfig.h)#添加可执行文件add_executable(Tutorialtutorial.cxx)target_include_directories(TutorialPUBLIC"${PROJECT_BINARY_DIR}")tutorial.cxx//计算数字的平方根#include//#include#include#include#include"TutorialConfig.h.in"intmain(intargc,char*argv[]){if(argc<2){std::cout<<"用法:"<