C++入门教程:如何创建你的第一个CMake项目
CLion 是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。感兴趣的朋友欢迎下载试用!
本教程将指导您完成创建和开发简单CMake项目的过程。我们将逐步学习CMake作为构建系统的基础知识,以及CMake项目的CLion设置和操作。
1.基本的CMake项目
CMake是一个元构建系统,它使用称为CMakeLists的脚本为特定环境生成构建文件(例如,Unix计算机上的makefile)。在CLion中创建新的CMake项目时,会在项目根目录下自动生成CMakeLists.txt文件。
让我们从创建一个新的CMake项目开始,转到File | New Project ,然后选择C ++ Executable。在我们的示例中,项目名称为 cmake_testapp ,并且所选语言标准为 C ++ 14 。
默认情况下,我们使用单个源文件获取项目主.cpp以及自动创建的根CMakeLists.txt文件包含以下命令:
2.构建目标和运行/调试配置
目标是使用CMake脚本构建的可执行文件或库。您可以在一个脚本中定义多个构建目标。
目前,我们的测试项目只有一个构建目标 cmake_testapp 。首次加载项目时,CLion自动添加与此目标关联的运行/调试配置:
单击切换器中的“Edit Configurations ”,或选择“Run | Edit Configurations”。从主菜单中编辑配置以查看详细信息。目标名称和可执行文件名称直接来自CMakeLists.txt:
注意此对话框的“Before launch ”区域:默认情况下,将构建设置为启动前步骤。因此,我们不仅可以使用此配置来调试或运行目标,还可以执行构建。
3.添加目标并重新加载项目
现在,让我们添加另一个源文件calc.cpp并从中创建一个新的可执行目标。
右键单击“项目”树中的根文件夹,然后选择“ New | C/C++ Source File.”。C / C ++源文件。CLion提示将文件添加到现有目标:
由于我们的目标是创建新目标,因此请清除“Add to targets”复选框。因此,CLion通知我们新文件当前不属于任何目标:
现在,让我们在CMakeLists.txt中手动声明一个新目标。请注意,CLion将CMake脚本视为常规代码文件,因此我们可以使用代码辅助功能,例如语法突出显示,自动完成和导航:
当我们在CMakeLists.txt中进行更改时,CLion需要重新加载它以更新项目结构:
我们可以重新加载项目一次(重新加载更改),也可以启用自动重新加载以使CLion默认应用CMakeLists.txt中的所有更改。 Settings / Preferences | Build, Execution, Deployment | CMake自动重新加载的选项。
重新加载项目后,CLion为新目标添加Run/Debug :
Library targets
到目前为止,我们添加的目标是可执行文件,我们曾经add_executable声明过它们。对于库目标,我们需要另一个命令-add_library。例如,让我们从calc.cpp源文件创建一个静态库:
add_library (test_library STATIC calc.cpp)
与可执行文件一样,CLion在重新加载项目后为库目标添加Run/Debug配置:
但是,这是不可执行的配置,因此,如果我们尝试运行或调试它,则会收到 Executable not specified error错误消息。
要获取库文件,我们需要构建test_library目标。为此,我们可以切换到相应的配置,或调用Build | Build "test_library"。该libtest_library.a文件将出现在cmake的建造调试文件夹中。
4.构建类型和CMake配置文件
到目前为止创建的所有“Run/Debug”配置都是“ Debug” 配置,这是为我们的项目自动配置的CMake配置文件的默认构建类型。CMake配置文件是项目构建的一组选项。它指定了工具链,构建类型,CMake标志,用于存储构建工件的路径, make生成 选项以及环境变量。
例如,要分离 Debug 和 Release 版本,我们需要在 Settings / Preferences | Build, Execution, Deployment | CMake中添加一个新的CMake配置文件。并将其构建类型设置为Release:
注意Build directory字段,该字段指定生成结果的位置。对于 调试 配置文件,默认文件夹是cmake-build-debug;对于 发布 配置文件,默认文件夹是cmake- build-release。您始终可以设置其他选择的位置。
现在,“运行/调试”配置切换器显示两个可用的配置文件:
切换配置或CMake配置文件可能会影响解析代码时使用的预处理器定义。例如,当有针对Debug和Release构建的单独标志时,或者当某些变量根据构建类型采用不同的值时。这称为解析上下文。
解析上下文定义了CLion如何执行语法突出显示以及其他代码见解,例如“查找用法”,重构和代码完成。在配置之间切换时,当前文件的解析上下文会自动更改。另外,您可以在上下文切换器中手动选择它(<自动选择>恢复自动选择):