前言

本文主要说明如何在Win10系统上安装和使用C/C++编译环境。


目录

前言

一、下载C/C++编译器

二、设置环境变量

三、常用编译命令

3.1、预处理命令

3.2、编译命令

3.3、汇编命令

3.4、链接命令

参考资料


一、下载C/C++编译器

Visual Studio Code、Sublime Text只是一个单纯的代码编辑器,没有自带任何语言的编译器。因此,想要在这类编辑器上编译执行C程序,首先需要手动安装一个C/C++编译器,并且设置环境变量。这里我们选择的编译器是mingw-w64,谨奉上mingw-w64的下载链接

mingw-w64下载完成后,将其解压到本地,最好给文件夹改一个短点的名字,路径也不要太深。然后进入bin文件夹下,复制当前路径。

二、设置环境变量

在桌面上右键点击“此电脑”图标,选择:属性 ->高级系统设置->环境变量,选择系统变量下的“Path”点击“编辑”,然后点击“新建”,粘贴刚才复制的mingw-w64路径,一路点击“确定”退出即可。

windows安装编译最新的ncnn_文件名

图2.1 系统属性

windows安装编译最新的ncnn_文件名_02

图2.2 环境变量

windows安装编译最新的ncnn_编译器_03

图2.3 新建环境变量

环境变量设置完成后,需要检验一下mingw-w64是否可用。快捷键Win+R,输入“cmd”或“powershell”,然后输入gcc -v或g++ -v,出现版本信息,则说明mingw-w64可以正常使用。

windows安装编译最新的ncnn_windows安装编译最新的ncnn_04

图2.4 检验mingw-w64

三、常用编译命令

我们将用下面这段代码以身试法,来实际验证一下mingw-w64的编译命令。可以将代码复制到本地,保存为test.c,依此执行:预处理、编译、汇编和链接命令,并查看对应的生成结果。

说明:

  • 作为演示,这里只测试了C语言程序,如需编译C++程序,将下文中命令的gcc替换为g++即可
  • 下列命令中的-E、-C、-S可以省略,不影响最终效果

代码3.1 gcc环境测试程序

/*
* Document: gcc环境测试程序
* FileName: test.c
*/
#include <stdio.h>
#include <stdlib.h>

#define NAME_LEN 6
/* 记录输入字符 */
char inputName[NAME_LEN] = "";

void main (void)
{
    printf("Please enter your name.\r\n");

    scanf("%5s", inputName);

    printf("%s, gcc normal operation.\r\n", inputName);

    system("pause"); // 暂停程序

    return;
}

3.1、预处理命令

/* 由源文件生成预处理文件 */

gcc -E \文件名.c -o \文件名.i

预处理的主要工作:

  • 删除“#include”,插入相应的头文件
  • 删除#define,展开宏
  • 处理#if等条件编译指令,根据条件修改源代码
  • 删除注释
  • 添加行号,以及文件名标识,便于调试

执行预处理命令后得到的文件(头文件部分未展示)。

windows安装编译最新的ncnn_文件名_05

图3.1 执行mingw-w64预处理命令

windows安装编译最新的ncnn_编译器_06

图3.2 预处理结果文件

3.2、编译命令

/* 由预处理文件生成汇编文件 */

gcc -S \文件名.i -o \文件名.s

/* 由源文件生成汇编文件 */

gcc -S \文件名.c -o \文件名.s

以上两种方式的执行效果是一样的,都可以生成汇编文件。

windows安装编译最新的ncnn_windows安装编译最新的ncnn_07

图3.3 汇编文件

3.3、汇编命令

/* 由汇编文件生成二进制目标文件 */

gcc -C \文件名.s -o \文件名.o

/* 由源文件生成二进制目标文件 */

gcc -C \文件名.c -o \文件名.o

windows安装编译最新的ncnn_文件名_08

图3.4 目标文件

3.4、链接命令

/* 由汇编文件生成可执行文件 */

gcc \文件名.o -o \文件名.exe

/* 由源文件生成可执行文件,通常都直接使用此命令 */

gcc \文件名.c -o \文件名.exe

windows安装编译最新的ncnn_文件名_09

图3.5 可执行文件


参考资料