当前位置: 首页 > web >正文

Linux C++ 开发基础命令指南

1. GCC/G++ 安装与版本管理

安装 GCC/G++

# Ubuntu/Debian
sudo apt update
sudo apt install gcc g++# CentOS/RHEL
sudo yum install gcc-c++

查看 GCC 版本

gcc --version
g++ --version

升级编译器

# Ubuntu/Debian (安装最新版本)
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-12 g++-12  # 安装特定版本# 设置默认版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100# 切换版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

2. 安装 C++ 标准库文档

安装 C/C++ 标准库文档

# Ubuntu/Debian
sudo apt install glibc-doc manpages-dev libstdc++-12-doc# CentOS/RHEL
sudo yum install glibc-doc man-pages libstdc++-docs

使用帮助文档

man std::vector       # 查看vector文档
info libstdc++        # GNU C++库文档

3. Vi/Vim 基本使用

启动 Vim 编辑 C++ 文件

vim hello.cpp

Vim 基本命令模式

  1. 普通模式 (启动后的默认模式)

    • i - 进入插入模式
    • : - 进入命令模式
    • ESC - 返回普通模式
  2. 插入模式 (编辑文本)

    • 输入代码内容
  3. 命令模式 (执行命令)

    • :w - 保存文件
    • :q - 退出
    • :wq - 保存并退出
    • :q! - 强制退出不保存

Vim 编写 C++ 代码实用技巧

:set number          " 显示行号
:set autoindent      " 自动缩进
:set cindent         " C风格缩进
:syntax on           " 语法高亮
:set tabstop=4       " 设置tab为4空格
:set shiftwidth=4    " 自动缩进为4空格

Vim 编辑器的内部命令,而不是 Bash shell 命令

Vim 代码示例

  1. i 进入插入模式
  2. 输入以下代码:
#include <iostream>
using namespace std;int main() {cout << "Hello, World!" << endl;return 0;
}
  1. ESC 返回普通模式
  2. 输入 :wq 保存并退出

4. C++ 代码编译与运行

基本编译命令

g++ hello.cpp -o hello  # 编译为可执行文件hello
./hello                 # 运行程序

常用编译选项

g++ -std=c++17 hello.cpp -o hello      # 指定C++标准
g++ -Wall -Wextra hello.cpp -o hello   # 启用所有警告
g++ -O2 hello.cpp -o hello            # 优化级别2
g++ -g hello.cpp -o hello             # 包含调试信息

多文件编译

# 分开编译
g++ -c file1.cpp -o file1.o
g++ -c file2.cpp -o file2.o
g++ file1.o file2.o -o program# 或者直接编译
g++ file1.cpp file2.cpp -o program

链接外部库

g++ program.cpp -o program -lpthread   # 链接pthread库
g++ program.cpp -o program -lm         # 链接数学库

5. 实用开发技巧

快速编译运行

g++ hello.cpp -o hello && ./hello  # 编译成功后立即运行

查看程序返回值

./hello
echo $?  # 查看上一个程序的返回值

调试程序

g++ -g hello.cpp -o hello  # 编译时包含调试信息
gdb ./hello                # 启动GDB调试器# GDB常用命令
break main    # 在main函数设置断点
run           # 运行程序
next          # 单步执行
print var     # 打印变量值
quit          # 退出GDB

Makefile 简单示例

创建 Makefile 文件:

CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wextraall: hellohello: hello.cpp$(CXX) $(CXXFLAGS) hello.cpp -o helloclean:rm -f hello

使用:

make        # 编译
make clean  # 清理

掌握这些基础命令后,你就可以在 Linux 环境下高效地进行 C++ 开发了。随着项目复杂度增加,可以进一步学习 CMake、静态分析工具和性能分析工具等高级开发工具。

http://www.xdnf.cn/news/9523.html

相关文章:

  • 亚远景-ISO 21434标准:汽车网络安全实践的落地指南
  • 基于深度学习的工业OCR实践:仪器仪表数字识别技术详解
  • qt之开发大恒usb3.0相机三
  • 基于python,html,flask,echart,ids/ips,VMware,mysql,在线sdn防御ddos系统
  • SCDN如何同时保障网站加速与DDoS防御?
  • 精益数据分析(92/126):指标基准化——如何判断你的数据表现是否足够优秀
  • Vue Router 钩子函数与组件生命周期执行顺序详解
  • Ubuntu 系统grub日志级别设置
  • C#与 Prism 框架:构建模块化的 WPF 应用程序
  • 毫秒级数据采集的极致优化:如何用C#实现高性能、无冗余的实时文件写入?
  • 文档整合自动化
  • ASP.NET MVC添加新控制器示例
  • Android 缓存应用冻结器(Cached Apps Freezer)
  • 交换机环路故障分析以及解决方案
  • 模型自学推理:自信驱动进化
  • 使用JavaSDK简单上传文件到阿里云OSS服务中
  • GitHub开源|AI顶会论文中文翻译PDF合集(gpt-translated-pdf-zh)
  • 【AGI】Qwen3模型高效微调
  • Python生成ppt(python-pptx)N问N答(如何绘制一个没有背景的矩形框;如何绘制一个没有背景的矩形框)
  • 小提琴图绘制-Graph prism
  • 打破网络次元壁:NAT 穿透与内网打洞的 “Matrix 式” 通信革命
  • micromamba安装 配置 pythonocc安装
  • 智慧充电桩数字化管理平台:环境监测与动态数据可视化技术有哪些作用?
  • CentOS 7 如何安装libsndfile?
  • D2000平台上Centos使用mmap函数遇到的陷阱
  • 【机器学习基础】机器学习入门核心算法:隐马尔可夫模型 (HMM)
  • 【赵渝强老师】OceanBase的部署架构
  • 基于Qt的MCP LLM代理服务开发实战:从0到1扩展大语言模型
  • 本地(Linux)编译 MySQL 源码
  • Java高频面试之并发编程-23