参考资料

  1. Cloudreve 启用 JWT(JSON Web Tokens)加密通信
  2. Jitsi Meet 是一个开源的视频会议解决方案
  3. Elasticsearch 是一个开源的分布式搜索和分析引擎
  4. Backdrop 是一个轻量级、高性能的反向代理工具
  5. Percona是一家提供开源数据库解决方案的公司,专注于MySQL、MongoDB、PostgreSQL等数据库的性能优化
  6. Squid是一款开源的代理服务器和Web缓存服务器
  7. alt 是一个轻量级的代理工具,支持多种协议(如 HTTP、SOCKS5),用于网络请求的转发和代理
  8. Jobber 是一个轻量级的任务调度工具

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)定位问题。