2024.11.1 C++ 环境设置
如果您想要设置 C++ 语言环境,需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。
一、文本编辑器
通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。
C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。
- Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插件支持 C/C++ 开发,使其成为一个流行的选择,通过安装 C/C++ 插件和调整设置,可以成为一个很好的 C 语言开发环境。
- Visual Studio: 面向 .NET 和 C++ 开发人员的综合性 Windows 版 IDE,可用于构建 Web、云、桌面、移动应用、服务和游戏。
- Vim 和 Emacs:这两个是传统的文本编辑器,它们有着强大的编辑功能和高度的可定制性,对于熟练的用户来说非常强大,有很多插件和配置可以支持C语言的开发。
- Eclipse:Eclipse 是另一个功能强大的集成开发环境,虽然它最初是为 Java 开发设计的,但通过安装 C/C++ 插件,可以使其支持 C 语言开发。
二、C++ 编译器
写在源文件中的源代码是人类可读的源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。
C++ 编译器用于把源代码编译成最终的可执行程序。
大多数的 C++ 编译器并不在乎源文件的扩展名,但是如果您未指定扩展名,则默认使用 .cpp。
最常用的免费可用的编译器是 GNU 的 C/C++ 编译器,如果您使用的是 HP 或 Solaris,则可以使用各自操作系统上的编译器。
以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。
三、Linux 上的安装
如果您使用的是 Linux 或 UNIX,请在命令行使用下面的命令来检查您的系统上是否安装了 GCC:
$ g++ -v
如果您的计算机上已经安装了 GNU 编译器,则会显示如下消息:
Using built-in specs.
Target: x86_64-w64-mingw32
Configured with:
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
如果未安装 GCC,那么请按照 http://gcc.gnu.org/install/ 上的详细说明安装 GCC。
四、Windows 上的安装
MinGW-w64
为了在 Windows 上安装 GCC,您需要安装 MinGW-w64。
MinGW-w64 是一个开源项目,它为 Windows 系统提供了一个完整的 GCC 工具链,支持编译生成 32 位和 64 位的 Windows 应用程序。
访问 MinGW-w64 的主页 mingw-w64.org,进入 MinGW 下载页面 https://www.mingw-w64.org/downloads/,下载最新版本的 MinGW-w64 安装程序。
我们只安装 MinGW-w64 ,所以只需下载 MinGW-w64 即可,点击红框中的"SourceForge"超链接,就会进入 SourceForge 中的 MinGW-w64 下载页面。
在 SourceForge 上下载 MinGW-w64 :https://sourceforge.net/projects/mingw-w64/files/
这种安装,会碰到网络连接错误问题,所以我们可以直接下载 sjlj (稳定的,64 位和 32 位都支持):
下载完成后,解压,在 bin 目录里面就可以找到 g++.exe 或者 gcc.exe:
当安装 MinGW 时,您至少要安装 gcc-core、gcc-g++、binutils 和 MinGW runtime,但是一般情况下都会安装更多其他的项。
添加您安装的 MinGW 的 bin 子目录到您的 PATH 环境变量中,这样您就可以在命令行中通过简单的名称来指定这些工具。
当完成安装时,您可以从 Windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。
五、G++ 应用说明
程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库。通过遵循源码的命名规范并指定对应库的名字,用 gcc 来编译链接 C++ 程序是可行的,如下例所示:
$ gcc main.cpp -lstdc++ -o myprogram
在这个例子中,main.cpp
是源代码文件,而-o myprogram
指定了输出的可执行文件的名字为myprogram
。如果不使用-o
选项指定输出文件名,默认情况下,GCC会将输出文件命名为a.out
(在Unix-like系统上)或a.exe
(在Windows上)。
下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
最简单的编译方式:
$ g++ helloworld.cpp
由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。程序可以这样来运行:
$ ./a.out
Hello, world!
通常我们使用 -o 选项指定可执行程序的文件名,以下实例生成一个 helloworld 的可执行文件:
$ g++ helloworld.cpp -o helloworld
执行 helloworld:
$ ./helloworld
Hello, world!
如果是多个 C++ 代码文件,如 runoob1.cpp、runoob2.cpp,编译命令如下:
$ g++ runoob1.cpp runoob2.cpp -o runoob
#生成一个 runoob 可执行文件。
g++ 有些系统默认是使用 C++98,我们可以指定使用 C++11 来编译 main.cpp 文件:
g++ -g -Wall -std=c++11 main.cpp
六、-o 做个生活中的类比
FILE 生成指定的输出文件。用在生成可执行文件时。
$ gcc main.cpp -o myprogram
当你打印文件时,打印机会问你想把文件打印到哪。假设你有很多打印机,你就得指定一台,这样文件才能正确输出。同样的道理在编程里,FILE
就是指定“输出到哪”的一个方法。你告诉编译器把代码编译的结果放在哪个文件里,这样就能方便地找到生成的可执行文件,不用自己再去查找默认的位置。