温馨提示×

如何在Debian上配置C++编译器

小樊
37
2025-12-04 05:02:21
栏目: 编程语言

在 Debian 上配置 C++ 编译器的完整步骤

一 安装编译器与构建工具

  • 更新软件源并安装常用开发包:
    • 安装整套构建工具:sudo apt update && sudo apt install build-essential
    • 若仅安装 C++ 编译器:sudo apt install g++
  • 安装后可验证版本:gcc --versiong++ --version
  • 建议同时安装调试与工程工具:sudo apt install gdb cmake git,便于后续开发与调试。

二 验证安装与编写首个程序

  • 创建示例源文件 hello.cpp:
    #include <iostream>
    int main() { std::cout << "Hello, Debian C++\n"; return 0; }
    
  • 编译与运行:
    • 编译:g++ -o hello hello.cpp
    • 运行:./hello
  • 常用编译选项:
    • 开启常用警告:-Wall
    • 生成调试信息:-g
    • 指定标准:-std=c++17(或 c++20)。

三 配置环境变量与默认编译器

  • 设置编译器变量(影响 make、CMake 等工具链选择):
    • 当前会话临时生效:
      export CC=/usr/bin/gcc
      export CXX=/usr/bin/g++
      
    • 永久生效(Bash):在 ~/.bashrc~/.profile 末尾添加上面两行并执行 source ~/.bashrc
    • 永久生效(Zsh):在 ~/.zshrc 末尾添加并执行 source ~/.zshrc
    • 系统级(所有用户):编辑 /etc/environment(需 root),写入:
      CC=/usr/bin/gcc
      CXX=/usr/bin/g++
      
      修改后重登录或重启生效。
  • 多版本共存与默认版本选择(使用 update-alternatives):
    • 注册候选版本(示例为 gcc-12/g+±12 与 gcc-13/g+±13,优先级数值越大优先级越高):
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 --slave /usr/bin/g++ g++ /usr/bin/g++-12
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 130 --slave /usr/bin/g++ g++ /usr/bin/g++-13
      
    • 交互选择默认版本:sudo update-alternatives --config gcc(g++ 会随 gcc 的 slave 联动切换)
    • 验证当前默认:gcc --versiong++ --version

四 使用 Make 或 CMake 构建项目

  • 简单 Makefile 示例(支持 C++17):
    CXX      := g++
    CXXFLAGS := -Wall -Wextra -std=c++17 -g
    TARGET   := app
    SRCS     := main.cpp
    
    $(TARGET): $(SRCS)
    	$(CXX) $(CXXFLAGS) -o $@ $^
    
    clean:
    	rm -f $(TARGET)
    
    .PHONY: clean
    
    • 构建:make
    • 清理:make clean
  • 使用 CMake(推荐跨平台):
    • 示例 CMakeLists.txt:
      cmake_minimum_required(VERSION 3.16)
      project(Hello CXX)
      set(CMAKE_CXX_STANDARD 17)
      set(CMAKE_CXX_STANDARD_REQUIRED ON)
      add_executable(app main.cpp)
      
    • 构建步骤:
      mkdir -p build && cd build
      cmake -DCMAKE_BUILD_TYPE=Debug ..
      make
      ./app
      ```。

0