📜  通过控制台编译 c++ 和 c - C++ (1)

📅  最后修改于: 2023-12-03 15:12:25.236000             🧑  作者: Mango

通过控制台编译 C++ 和 C

简介

在进行 C++ 和 C 程序开发时,编译器是不可或缺的工具。编译器将我们编写的源代码翻译成计算机能够理解的机器语言代码,并生成可执行程序。常见的 C++ 和 C 编译器有 GCC、Clang、Microsoft Visual C++ 等。

通过控制台编译 C++ 和 C 程序,可以更好地了解程序的编译流程,并且对于一些简单的程序,控制台编译可能比使用集成开发环境更加方便快捷。

本文将介绍在 Windows 系统下使用 GCC 和 Microsoft Visual C++ 编译器通过控制台编译 C++ 和 C 程序的方法。

使用 GCC 编译器编译 C++ 和 C
安装 GCC 编译器

在 Windows 系统下使用 GCC 编译器需要先安装 MinGW 工具集。MinGW 是 Minimalist GNU for Windows 的缩写,它是一组在 Windows 系统下移植了 GNU 工具链的工具集。其中包括 GCC 编译器。

你可以通过 MinGW 官网(http://www.mingw.org/)下载安装包进行安装。在安装过程中需要选择所需的组件,建议选择完整安装,以免缺少重要的库文件。

安装完成后,在命令行窗口输入“gcc -v”命令,如果输出类似以下信息,则说明 GCC 编译器已经成功安装:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --with-gmp=/mingw/var/lib/gcc/mingw32/6.3.0/../../../../mingw32 --with-mpfr=/mingw/var/lib/gcc/mingw32/6.3.0/../../../../mingw32 --with-mpc=/mingw/var/lib/gcc/mingw32/6.3.0/../../../../mingw32 --disable-shared --enable-static --with-pkgversion='MinGW.org GCC-6.3.0-1' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/mingw/msys/1.0/local/include -I/mingw/msys/1.0/include -I/mingw/msys/1.0/include/SDL' CXXFLAGS='-O2 -pipe -I/mingw/msys/1.0/local/include -I/mingw/msys/1.0/include -I/mingw/msys/1.0/include/SDL' CPPFLAGS= LDFLAGS='-pipe -L/mingw/msys/1.0/local/lib -L/mingw/msys/1.0/lib -L/mingw/msys/1.0/lib/SDL'
Thread model: win32
gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)
编译 C++ 程序

我们以 HelloWorld.cpp 为例,演示如何使用 GCC 编译器编译 C++ 程序。

查看源代码

HelloWorld.cpp 的源代码如下:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

该程序输出“Hello, world!”字符串。

编译代码

在命令行窗口中输入以下指令编译程序:

g++ HelloWorld.cpp -o HelloWorld.exe

其中,“g++”为 GCC 编译器的编译命令,“HelloWorld.cpp”为源代码文件名,“-o”指定编译生成可执行文件的文件名,“HelloWorld.exe”为指定的可执行文件名。

如果程序没有错误,执行该命令后控制台不会输出任何信息,此时需要使用 dir 命令查看当前目录下是否生成了可执行文件。若生成成功,则 dir 命令会列出该文件。

运行程序

在命令行窗口输入以下指令运行程序:

.\HelloWorld.exe

此时控制台会输出“Hello, world!”字符串。

编译 C 程序

我们以 HelloWorld.c 为例,演示如何使用 GCC 编译器编译 C 程序。

查看源代码

HelloWorld.c 的源代码如下:

#include <stdio.h>

int main()
{
    printf("Hello, world!");
    return 0;
}

该程序输出“Hello, world!”字符串。

编译代码

在命令行窗口中输入以下指令编译程序:

gcc HelloWorld.c -o HelloWorld.exe

其中,“gcc”为 GCC 编译器的编译命令,“HelloWorld.c”为源代码文件名,“-o”指定编译生成可执行文件的文件名,“HelloWorld.exe”为指定的可执行文件名。

如果程序没有错误,执行该命令后控制台不会输出任何信息,此时需要使用 dir 命令查看当前目录下是否生成了可执行文件。若生成成功,则 dir 命令会列出该文件。

运行程序

在命令行窗口输入以下指令运行程序:

.\HelloWorld.exe

此时控制台会输出“Hello, world!”字符串。

使用 Microsoft Visual C++ 编译器编译 C++ 和 C
安装 Microsoft Visual C++ 编译器

如果你的 Windows 系统已经安装了 Visual Studio 集成开发环境,则已经默认安装了 Microsoft Visual C++ 编译器。如果没有安装,你可以到 Visual Studio 官网(https://visualstudio.microsoft.com/zh-hans/downloads/)下载安装包进行安装。

编译 C++ 程序

我们以 HelloWorld.cpp 为例,演示如何使用 Microsoft Visual C++ 编译器编译 C++ 程序。

查看源代码

HelloWorld.cpp 的源代码如下:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

该程序输出“Hello, world!”字符串。

编译代码

打开 Visual Studio 的“Developer Command Prompt for VS 2019”命令行窗口,进入源代码文件所在目录,输入以下指令编译程序:

cl HelloWorld.cpp

其中,“cl”为 Microsoft Visual C++ 编译器的编译命令,“HelloWorld.cpp”为源代码文件名。

如果程序没有错误,控制台会输出“HelloWorld.exe”可执行程序所在的路径,如“HelloWorld.cpp : 用于域 'std' 的 using 指令不在此处进行定义。”

运行程序

在命令行窗口输入以下指令运行程序:

.\HelloWorld.exe

此时控制台会输出“Hello, world!”字符串。

编译 C 程序

我们以 HelloWorld.c 为例,演示如何使用 Microsoft Visual C++ 编译器编译 C 程序。

查看源代码

HelloWorld.c 的源代码如下:

#include <stdio.h>

int main()
{
    printf("Hello, world!");
    return 0;
}

该程序输出“Hello, world!”字符串。

编译代码

打开 Visual Studio 的“Developer Command Prompt for VS 2019”命令行窗口,进入源代码文件所在目录,输入以下指令编译程序:

cl HelloWorld.c

其中,“cl”为 Microsoft Visual C++ 编译器的编译命令,“HelloWorld.c”为源代码文件名。

如果程序没有错误,控制台会输出“HelloWorld.exe”可执行程序所在的路径,如“HelloWorld.c : 用于域 'std' 的 using 指令不在此处进行定义。”

运行程序

在命令行窗口输入以下指令运行程序:

.\HelloWorld.exe

此时控制台会输出“Hello, world!”字符串。

总结

本文介绍了在 Windows 系统下使用 GCC 和 Microsoft Visual C++ 编译器通过控制台编译 C++ 和 C 程序的方法。通过控制台编译程序,可以更好地了解程序的编译流程,并且对于一些简单的程序,控制台编译可能比使用集成开发环境更加方便快捷。