OnlyOffice 源码编译实战:Ubuntu 20.04 Docker 环境构建与 3 大编译避坑指南

1. 环境准备与 Docker 配置

在开始 OnlyOffice 源码编译之前,我们需要准备一个稳定可靠的 Docker 环境。与传统的物理机编译不同,Docker 提供了环境隔离和可重复性,能够有效解决不同系统环境下的兼容性问题。

1.1 基础环境搭建

首先确保你的系统已经安装 Docker 和 Docker Compose。以下是 Ubuntu 20.04 上的安装命令:

# 更新软件包索引
sudo apt-get update

# 安装必要的依赖
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 仓库
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# 安装 Docker 引擎
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# 验证 Docker 安装
sudo docker run hello-world

1.2 创建专用 Docker 网络

为了更好的网络隔离,我们创建一个专用网络:

docker network create onlyoffice-net

1.3 准备编译目录结构

创建以下目录结构用于存放源码和编译输出:

onlyoffice-build/
├── docker/
│   └── Dockerfile
├── build_tools/
└── out/

2. Dockerfile 配置与优化

2.1 基础镜像选择

我们选择 Ubuntu 20.04 作为基础镜像,它提供了良好的软件包支持和长期维护:

FROM ubuntu:20.04

ENV TZ=Etc/UTC
ENV DEBIAN_FRONTEND=noninteractive

# 设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

2.2 系统依赖安装

OnlyOffice 编译需要大量系统依赖,以下是关键依赖的安装命令:

RUN apt-get update && \
    apt-get install -y \
        build-essential \
        git \
        python3 \
        python3-pip \
        nodejs \
        npm \
        cmake \
        libssl-dev \
        libpq-dev \
        librabbitmq-dev \
        libfontconfig1-dev \
        libfreetype6-dev \
        libx11-dev \
        libxext-dev \
        libxfixes-dev \
        libxi-dev \
        libxrender-dev \
        libxcb1-dev \
        libx11-xcb-dev \
        libxcb-glx0-dev \
        libxcb-keysyms1-dev \
        libxcb-image0-dev \
        libxcb-shm0-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxkbcommon-dev \
        libxkbcommon-x11-dev \
        libgl1-mesa-dev \
        libglu1-mesa-dev \
        freeglut3-dev \
        mesa-common-dev \
        libgstreamer1.0-dev \
        libgstreamer-plugins-base1.0-dev \
        libgstreamer-plugins-good1.0-dev \
        libgstreamer-plugins-bad1.0-dev \
        gstreamer1.0-plugins-base \
        gstreamer1.0-plugins-good \
        gstreamer1.0-plugins-bad \
        gstreamer1.0-plugins-ugly \
        gstreamer1.0-libav \
        gstreamer1.0-doc \
        gstreamer1.0-tools \
        gstreamer1.0-x \
        gstreamer1.0-alsa \
        gstreamer1.0-gl \
        gstreamer1.0-gtk3 \
        gstreamer1.0-qt5 \
        gstreamer1.0-pulseaudio \
        libqt5svg5-dev \
        libqt5webkit5-dev \
        qtdeclarative5-dev \
        qttools5-dev \
        qttools5-dev-tools \
        libqt5x11extras5-dev \
        libqt5xmlpatterns5-dev \
        qtbase5-private-dev \
        qtmultimedia5-dev \
        libqt5multimediawidgets5 \
        libqt5multimedia5-plugins \
        libqt5multimedia5 \
        qtconnectivity5-dev \
        qtlocation5-dev \
        qtwebengine5-dev \
        libqt5webengine5 \
        libqt5webenginecore5 \
        libqt5webenginewidgets5 \
        qtwebengine5-dev \
        libqt5websockets5-dev \
        libqt5opengl5-dev \
        libqt5sensors5-dev \
        libqt5serialport5-dev \
        libqt5sql5-sqlite \
        libqt5texttospeech5-dev \
        libqt5charts5-dev \
        libqt5datavisualization5-dev \
        libqt5scxml5-dev \
        libqt5virtualkeyboard5-dev \
        libqt5waylandclient5-dev \
        libqt5waylandcompositor5-dev \
        libqt5xdg-dev \
        libqt5xdgiconloader-dev \
        libqt5xdgiconloader3 \
        libqt5xmlpatterns5-dev \
        libqt5zlib-dev \
        libsqlite3-dev \
        libxslt1-dev \
        libxml2-dev \
        zlib1g-dev \
        libjpeg-dev \
        libpng-dev \
        libtiff-dev \
        libwebp-dev \
        libopenjp2-7-dev \
        liblcms2-dev \
        libjson-c-dev \
        libcurl4-openssl-dev \
        libicu-dev \
        libpcre3-dev \
        libdouble-conversion-dev \
        libharfbuzz-dev \
        libfreetype6-dev \
        libfontconfig1-dev \
        libinput-dev \
        libxkbcommon-dev \
        libwayland-dev \
        libegl1-mesa-dev \
        libgbm-dev \
        libdrm-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0-dev \
        libxcb-xinerama0-dev \
        libxcb-xkb-dev \
        libxcb-xinput-dev \
        libxcb-util-dev \
        libxcb-image0-dev \
        libxcb-keysyms1-dev \
        libxcb-icccm4-dev \
        libxcb-sync-dev \
        libxcb-xfixes0-dev \
        libxcb-shape0-dev \
        libxcb-randr0-dev \
        libxcb-render-util0

更多推荐