参考资料

  1. hello-seattle 是一个轻量级、高性能的代理工具
  2. JupyterHub 是一个多用户版本的 Jupyter Notebook
  3. Jobber 是一个轻量级的任务调度工具
  4. Maven 是一个基于项目对象模型(POM)的 Java 项目管理工具
  5. Logstash 是 Elastic 公司开发的开源数据收集和处理引擎
  6. OnlyOffice是一款开源办公套件
  7. Cloudreve 与 OnlyOffice 集成配置指南
  8. Convertigo是一个开源的低代码开发平台

GNU Compiler Collection (GCC) 是一个开源的编译器套件,支持多种编程语言

GCC 简介

GNU Compiler Collection (GCC) 是一个开源的编译器套件,支持多种编程语言(如 C、C++、Fortran、Ada 等)和多种硬件架构。GCC 由 GNU 项目开发,是自由软件基金会(FSF)的重要项目之一。

特点

  1. 多语言支持:支持 C、C++、Fortran、Ada、Go、D 等。

  2. 跨平台:可在多种操作系统(Linux、Windows、macOS 等)和架构(x86、ARM、RISC-V 等)上运行。

  3. 优化能力强:提供多种优化选项,生成高效的机器代码。

  4. 开源自由:遵循 GPL 许可证,可自由使用和修改。

  5. 插件支持:允许通过插件扩展功能。

最新更新内容及时间

  • 最新版本:GCC 13.2(截至 2023 年 10 月)

  • 发布时间:2023 年 7 月 19 日

  • 主要更新

    • 改进 C++23 支持。

    • 新增对 ARMv9-A 架构的支持。

    • 优化代码生成和性能。

镜像下载地址

官网地址

文档地址

Docker 安装示例

# 拉取 GCC 官方镜像
docker pull gcc

# 运行 GCC 容器并编译代码
docker run -it --rm -v $(pwd):/usr/src/app -w /usr/src/app gcc gcc -o hello hello.c

YAML 设置教程(以 .yaml 配置为例)

# 示例:配置 GCC 编译选项
build:
  compiler: gcc
  flags: -O2 -Wall -Wextra
  sources:
    - main.c
    - utils.c
  output: my_program

常用错误及问题

  1. undefined reference to 'main'

    • 原因:缺少 main 函数或未正确链接。

    • 解决:确保程序包含 main 函数,检查链接命令。

  2. fatal error: stdio.h: No such file or directory

    • 原因:缺少标准库头文件。

    • 解决:安装开发工具包(如 build-essential on Ubuntu)。

  3. error: incompatible types

    • 原因:类型不匹配。

    • 解决:检查变量和函数声明是否一致。

  4. warning: implicit declaration of function

    • 原因:函数未声明或未包含头文件。

    • 解决:添加正确的头文件或函数原型。

  5. segmentation fault (core dumped)

    • 原因:内存访问越界。

    • 解决:使用调试工具(如 gdb)定位问题。