g++的基础使用

本文介绍了g++作为Linux下C++编译器的基本使用方法,包括代码编译的四个步骤:预处理、汇编、生成目标代码、链接成可执行程序。以一个实际例子说明了如何编译包含多个源文件的项目,解释了为何在编译命令中不需要显式指定头文件的原因,并预告了接下来将讨论g++的高级用法、gdb调试及makefile的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

g++是linux下最常用的编译工具,是GNU的 C++编译器。C++的代码生成过程一般为四个步骤:

  • 预处理
  • 将预处理后文件转换为汇编语言
  • 将汇编语言变为目标代码(一般为机器代码)
  • 链接,生成可执行程序

本文将通过编译4月2日实验课作业演示如何使用g++

main.cpp

// main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//


#include "ComplexNum.h"
#include <iostream>

int main()
{
	ComplexNum c1(1, 2);
	ComplexNum c2(3, 4);
	c1.add(c2).print();
	c1.multiply(c2).print();
	c1.divide(c2).print();
	if (c1.equals(c2))
	{
		std::cout << "a equals to b.\n";
	}
	else
	{
		std::cout << "a is different from b.\n";
		ComplexNum c3 = c1.substract(c2);
		std::cout << c3.getRealPart() << std::endl << c3.getImaginaryPart() << std::endl;
		c3.reciprocal().print();
		c3.conjugate().print();
		std::cout << c3.abs() << std::endl;

	}
	
	int a = 1, b = 2, c = 3, d = 4, e = 5, f = 7;
	if (a * e == b * d)
		std::cout << "方程组无解。\n";
	else
	{
		std::cout << "x=" << (b * f 
### 配置 VSCode 使用 g++ 编译 C++ 程序 #### 安装 MinGW-w64 和 g++ 为了能够在 Windows 上使用 g++ 进行编译,需要先安装 MinGW-w64 工具链。可以从指定网站下载适用于 Windows 的 MinGW 版本[^4]。 #### 设置环境变量 完成 MinGW-w64 的安装之后,需将 `bin` 目录路径添加到系统的环境变量 PATH 中,以便可以在命令提示符或 PowerShell 下直接调用 g++ 命令。 #### 创建并配置 launch.json 文件 在 VSCode 中打开工作区或项目文件夹,在 `.vscode` 文件夹内创建名为 `launch.json` 的调试配置文件。此文件用于定义启动和调试选项: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.exe", // 输出可执行文件位置 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/path/to/gdb", // GDB 路径 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build hello world", // 构建任务名 "internalConsoleOptions": "openOnSessionStart" } ] } ``` #### 创建 tasks.json 文件来构建代码 同样位于 `.vscode` 文件夹内的 `tasks.json` 文件用来描述如何编译源码。下面是一个简单的例子,它指定了使用的 C++ 标准为 c++11;对于其他标准如 c++17 或者 c++20 只需更改相应数值即可[^2]。 ```json { "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "g++", "args": [ "-g", // 添加调试信息 "${file}", // 当前编辑器中的活动文件 "-o", // 指定输出文件名 "${fileDirname}\\${fileBasenameNoExtension}.exe", "-std=c++11" // 设定C++版本 ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task from snippet." } ] } ``` 以上设置完成后,当编写好 C++ 代码后按下 F5 即可根据上述配置自动编译并运行程序。如果有任何特定需求比如多文件项目或者其他自定义参数也可以在此基础上做适当调整[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值