温馨提示×

linux c++如何入门

小樊
43
2026-07-05 18:47:10
栏目: 编程语言

对于想要入门 Linux 环境下的 C++ 开发,建议按照以下路径循序渐进。Linux 下的 C++ 开发与 Windows 下使用 IDE(如 Visual Studio)有很大不同,它更强调命令行编译过程工具链的使用。

以下是为你定制的入门指南:

第一阶段:环境准备

  1. 安装 Linux 系统

    • 推荐发行版:Ubuntu(对新手最友好)或 CentOS(服务器常用)。
    • 安装方式:如果是 Windows 用户,推荐使用 WSL2 (Windows Subsystem for Linux)。它让你可以在 Windows 内直接运行一个完整的 Linux 内核,无需安装虚拟机,体验最好。
      • 在 PowerShell 运行:wsl --install -d Ubuntu
  2. 安装开发工具链 Linux 下 C++ 开发的核心是 GCC/G++ 编译器。

    • 在终端输入以下命令安装(Ubuntu/Debian):
      sudo apt update
      sudo apt install build-essential gdb
      
    • build-essential 包含了 gcc, g++, make 等核心工具。
    • gdb 是调试器。
  3. 选择编辑器/IDE

    • VS Code (强烈推荐新手):安装 “Remote - WSL” 或直接在 Linux 里安装 VS Code,配合 “C/C++” 插件,体验极佳。
    • Vim / Neovim:Linux 神器,学习曲线陡峭,但熟练后效率极高。
    • CLion:JetBrains 出品,功能强大,但收费(学生免费)。

第二阶段:理解编译过程(核心差异)

在 Windows 下你可能习惯点一下“运行”就出结果。在 Linux 下,你需要理解从源代码到可执行文件的过程。

  1. 编写代码 创建一个文件 hello.cpp

    #include <iostream>
    int main() {
        std::cout << "Hello Linux C++" << std::endl;
        return 0;
    }
    
  2. 编译与运行

    • 编译:将代码翻译成机器码。
      g++ hello.cpp -o hello
      
      • g++:调用 C++ 编译器。
      • hello.cpp:源文件。
      • -o hello:输出名为 hello 的可执行文件。
    • 运行
      ./hello
      
  3. 常用编译参数

    • -g:加入调试信息(用于 GDB 调试)。
    • -Wall:显示所有警告(强烈建议加上,能发现很多低级错误)。
    • -std=c++11 (或 c++17, c++20):指定 C++ 标准。
    • 示例:g++ -g -Wall -std=c++17 main.cpp -o app

第三阶段:掌握构建工具 (Makefile)

当项目有多个 .cpp 文件时,手动输入 g++ 命令太麻烦。你需要 Make

  1. 什么是 Makefile 它是一个脚本,告诉 make 工具如何编译项目。

  2. 简单示例 假设有 main.cpputils.cpp。 创建文件名为 Makefile

    # 定义编译器
    CXX = g++
    # 定义参数
    CXXFLAGS = -g -Wall -std=c++17
    
    # 最终目标
    app: main.o utils.o
        $(CXX) $(CXXFLAGS) -o app main.o utils.o
    
    # 编译 main.cpp
    main.o: main.cpp
        $(CXX) $(CXXFLAGS) -c main.cpp
    
    # 编译 utils.cpp
    utils.o: utils.cpp
        $(CXX) $(CXXFLAGS) -c utils.cpp
    
    # 清理编译文件
    clean:
        rm -f *.o app
    

    在终端输入 make 即可编译,输入 make clean 即可清理。


第四阶段:学会调试 (GDB)

学会看代码是不够的,必须学会调试。

  1. 编译时加上 -g
  2. 启动调试:gdb ./app
  3. 常用命令
    • run (或 r):运行程序。
    • break main (或 b main):在 main 函数设断点。
    • next (或 n):单步跳过(不进入函数)。
    • step (或 s):单步进入(进入函数)。
    • print var (或 p var):打印变量值。
    • backtrace (或 bt):查看函数调用栈(出错时看哪里崩了)。
    • quit (或 q):退出。

第五阶段:Linux 系统编程与库

Linux C++ 的精髓在于利用 Linux 系统特性。

  1. 系统编程基础

    • 文件操作:学习 Linux 的文件描述符 (open, read, write, close),而不是仅仅用 C++ 的 fstream
    • 进程fork(), exec(), wait()
    • 线程pthread 库,或者 C++11 的 <thread>(底层在 Linux 通常是对 pthread 的封装)。
    • 网络编程:Socket 编程 (TCP/UDP),这是 Linux C++ 的高频应用场景。
  2. 第三方库管理

    • apt:安装系统库(如 sudo apt install libboost-all-dev)。
    • CMake (进阶):现代 C++ 项目几乎都用 CMake 来管理构建。它比 Makefile 更通用,能跨平台。
    • vcpkg / conan:现代 C++ 包管理器,用于管理第三方依赖。

学习资源推荐

  1. 书籍

    • 入门:《C++ Primer》(第五版,被誉为 C++ 圣经,虽然厚但很全)。
    • Linux 系统:《Unix 环境高级编程》(APUE,经典中的经典,必读)。
    • 网络:《Unix 网络编程》(UNP)。
  2. 实践项目建议

    • 初学者:写一个命令行计算器、简单的文件复制工具。
    • 进阶:写一个多线程的聊天室服务器(Socket + Thread)、简单的 HTTP 服务器、或者模仿 ls 命令实现自己的 my_ls

总结路线图

  1. 环境:装好 Ubuntu + VS Code + g++。
  2. 语法:复习 C++ 基础(指针、引用、类、STL)。
  3. 工具:学会用 g++ 编译,学会写简单的 Makefile,学会用 gdb 断点调试。
  4. 系统:学习 Linux 系统调用(文件、进程、网络)。
  5. 工程:学习 CMake,尝试引入 Boost 或 Asio 库。

记住:多敲代码,多在终端里折腾。 Linux 下开发,终端就是你的家。

0