【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

07-12 1329阅读

目录

一、CMake、make与g++

1、名词辨析

2、孰优孰劣

二、应用示例

1、工具类安装与配置

1)VSCode安装与配置

2)CMake下载与安装

3)MinGW-W64下载与安装

A、科学上网法

B、无需科学上网法

4)VSCode推荐插件 

 A、c/c++编译环境配置

 B、Fitten Code

2、CMake使用示例

寄语:希望我能做到你不用动手就能获取使用经验

第一步 创建简单项目

A、新建并打开项目文件夹

B、新建所需文件

C、点击tutorial.cpp文件

D、点击CMakeLists.txt 文件

E、点击TutorialConfig.h.in文件

F、构建和运行

1)cmake不指定编译器

2)mingw32-make副本改名make

3)cmake指定Mingw编译器及各编译器参数

4)内部构建和外部构建

第二步 添加库

A、创建子文件夹和库文件

B、点击MathFunctions.h文件

C、点击mysqrt.h文件

D、点击MathFunctions.cpp文件

E、点击mysqrt.cpp文件

F、点击子CMakeLists.txt文件

G、点击顶层CMakeLists.txt文件

H、将库设为可选项

第三步 调教库

 第四步 安装与调试

A、安装法则

B、调试法则

第五步 设置系统日志和异常处理(系统内省)

第六步 添加自定义命令和生成文件

解释一 Table.h在哪里?

解释二 Table.h的内容是什么?为什么?

解释三 Table.h的名称和生成位置这么控制的?

第七步 创建安装包

第八步 添加dashboard支持

第九步 创建共享库

第十步 添加生成器表达式

第十一步 添加导出配置

第十二步 Debug和Release打包

3、g++使用教程

A、编译单个源文件并生成可执行文件program:

B、编译多个源文件并生成可执行文件program:

C、指定 C++ 编译版本生成可执行文件:

D、添加头文件和库文件的搜索路径:

E、生成调试信息:

F、启用警告并将视为错误:

全文完,共53250字。


一、CMake、make与g++

1、名词辨析

CMake、make与g++分别是项目构建生成工具、项目构建工具和项目编译链接工具的代表之一。他们的关系可以概括为由项目构建生成工具CMake生成项目构建工具make所需的文件,项目构建工具make利用这些文件编译链接项目;而项目编译链接工具g++可以独立完成项目构建生成工具CMake和项目构建工具make的工作。

所谓Makefile文件,即是make编译、链接的规则性说明文件,作用相当于CMakeLists.txt之于CMake.

2、孰优孰劣

  • 既然g++可以完成CMake和make两人的工作,为什么不直接使用g++?

    因为直接使用g++的话,面对复杂的工程,多项目、多参数和各种依赖关系,命令代码是很复杂的,而且难以理清工程各种源文件之间的编译顺序,不便于项目管理与维护。对于简单项目,g++自然可以应付的来了。

    • make也可以独立完成项目的编译和链接,为什么还需要CMake的帮助?

      一句话,CMake的出现就是为了简化和升华make的工作的。Makefile的编码更加严格,语法规则更加复杂,况且Makefile针对不同的操作系统和编译器,编写内容是不同的,平台移植性差。CMake能够更改好的跨平台。一般地说,支持跨平台的原因是有自己独立运行的机制、检测不同平台的能力和针对不同平台生成对应对象的能力。当然,再能够支持第三方库和工具,则更具有可扩展性。CMake便是如此。他使用一套抽象的编译器和操作系统,能够检测不同的操作系统和编译器,并针对它们生成对应的Makefile文件。同样,CMake支持第三方库和工具。这样,便更有利于开发。

      二、应用示例

      1、工具类安装与配置

      1)VSCode安装与配置

      这个不要多说,推荐使用免安装版,因为安装版不可选安装路径,占据C盘空间。

      官网:Download Visual Studio Code - Mac, Linux, Windows

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      2)CMake下载与安装

      官网:Download CMake

      版本:安装版可以自动环境变量配置。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      安装步骤:

      第一步,直接next

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       第二步,agree,继续next

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       第三步,选择加入系统环境变量,方便起见,为所有用户安装,无需创建桌面图标。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       第四步,改变安装路径,继续next

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       第五步,install,等待安装完成。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      第六步,验证。win键唤出开始菜单,敲cmd,打开控制台,输入

      cmake -version

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      3)MinGW-W64下载与安装

      说明:MinGW-W64就是充当make的工具,对应于Linux的make构建工具,作用基本相同。在下文会说明使用CMake指定生成MinGW编译器的makefile文件。

      官网:MinGW-w64

      版本:这里我们直接下载mingw-w64,其他工具不做多介绍。主页点击Downloads。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       可以看到由很多版本可以选择,我们直接选择右侧sources

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       选择SourcesFrogs,下载最新版本就好。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      点击files栏

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      A、科学上网法

      下拉之后,选择在线安装程序,点击下载之后,跳转等5秒即可开始下载,下载可能有点慢,稍等即可。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      第一步,next

       【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       第二步,做出如下选择

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       version:版本选最新的

      Architecture:系统架构,64位选择x86_64;32位选择i686

      Threads:Windows系统选择win32;跨平台系统选择posix

      Exception:异常处理,不管是32位还是64位的,sjlj都是比较老的,选择第一项最新的即可。

      Build revision:没得选,0;若有得选,建议默认即可。

      第三步,更改安装位置,选择创建开始菜单。然后科学上网,再点next,等待安装完成。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      B、无需科学上网法

      在线安装程序的下方,就是各种离线包。依据:

       version:版本选最新的

      Architecture:系统架构,64位选择x86_64;32位选择i686

      Threads:Windows系统选择win32;类Unix系统选择posix

      Exception:异常处理,不管是32位还是64位的,sjlj都是比较老的,选择第一项最新的即可。

      Build revision:没得选,0;若有得选,建议默认即可。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      我的话,就选择x86_64-win32-seh这一项,等待下载完成。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      下载完成解压提取文件到新建的文件夹下。建议简化解压目录,剪切mingw64到外层文件夹即可。

      设置系统环境变量。

      win键唤起开始菜单,输入环境变量,打开编辑系统环境变量。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      双击path,新建->浏览,

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      定位到解压目录即可。 

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      验证:win键唤起开始菜单,输入cmd,输入代码,g++也可以。

      gcc -v

       弹出版本信息。输入代码

      where gcc

      显示安装位置。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      这样一来,我们已经可以使用cmake和make来编译我们的项目啦。为了使VSCode更好使用,我们安装一些插件。 

      4)VSCode推荐插件 

      打开VSCode,快捷键F1,选择extension

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       A、c/c++编译环境配置

      扩展搜索框搜索:c/c++

      安装C/C++ Extension Pack,会附带安装4个扩展,方便快捷。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例


       有一个设置弹窗,可以进行设置

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例


      显示在侧边栏,方便一些

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例


       B、Fitten Code

      这是一个类GitHub Copilot插件,可代码补全、代码解释、生成代码以及对话等。就是需要注册一个账号,介意的话,就不要使用了。

      2、CMake使用示例

      寄语:希望我能做到你不用动手就能获取使用经验

      本教程有官方示例,可参阅网址:CMake Tutorial — Mastering CMake

      官方文档虽然很正式,但是毕竟是全英文,而且不如结合VSCode实际操作来得直观。本教程还是有一定价值的。我们就参考着官网文档和源码从零开始一步一步展示cmake示例。

      官网操作源码地址:CMake Tutorial — CMake 3.29.1 Documentation

      点击如下链接即可。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      第一步 创建简单项目

      A、新建并打开项目文件夹

      新建一个空白文件夹(无中文路径是基本默认的)作为我们项目文件夹,打开VSCode,打开文件夹。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例


      B、新建所需文件

      新建文件CMakeLists.txt、tutorial.cpp和TutorialConfig.h.in,注意后缀一起当文件名填上,文件大小写是敏感的,这样规范。

      【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例

       【一学就会】(一)C++编译工具链——基于VSCode的CMake、make与g++简单理解与应用示例


      C、点击tutorial.cpp文件

      输入代码

      // A simple program that computes the square root of a number
      #include 
      #include 
      #include "TutorialConfig.h"
      #include "MathFunctions.h"
      #include 
      int main(int argc, char* argv[])
      {
        if (argc 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]