You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenJDK11交叉编译时找不到已安装的X11依赖库问题求助

交叉编译OpenJDK 11 aarch64架构报错解决方案

核心原因

你提前安装的libx11-dev libxext-dev等依赖均为宿主x86_64架构的开发包,交叉编译aarch64目标架构版本时,构建系统会检索目标架构对应的依赖库,找不到对应版本的X11头文件和动态库就会抛出相关报错。

解决步骤

方案一:安装目标架构对应依赖(完整构建带GUI功能的JDK)

  • 若宿主系统为Fedora/CentOS/RHEL系,直接安装aarch64架构的X11开发包:
dnf install -y libX11-devel.aarch64 libXext-devel.aarch64 libXrender-devel.aarch64 libXrandr-devel.aarch64 libXtst-devel.aarch64 libXt-devel.aarch64
  • 若宿主系统为Debian/Ubuntu系,先启用arm64多架构支持再安装对应依赖:
dpkg --add-architecture arm64
apt update
apt install -y libx11-dev:arm64 libxext-dev:arm64 libxrender-dev:arm64 libxrandr-dev:arm64 libxtst-dev:arm64 libxt-dev:arm64

安装完成后清理之前的构建缓存,重新执行配置命令,指定X11依赖的目标架构路径:

# 清理旧构建缓存
make distclean
# 重新配置
./configure --with-devkit=./build/devkit/x86_64-linux-gnu/aarch64-linux-gnu \
--openjdk-target=aarch64-linux-gnu \
--x-includes=/usr/aarch64-linux-gnu/include \
--x-libraries=/usr/aarch64-linux-gnu/lib
# 启动构建
make -j$(nproc)

注意:如果你的aarch64依赖安装路径不是默认的/usr/aarch64-linux-gnu/,请对应调整--x-includes和--x-libraries的参数值

方案二:跳过X11依赖检查(构建无头版JDK,适合服务器场景)

如果不需要使用JDK的GUI相关功能,可以直接添加--disable-headful参数跳过X11依赖校验,无需安装额外的aarch64架构依赖:

make distclean
./configure --with-devkit=./build/devkit/x86_64-linux-gnu/aarch64-linux-gnu \
--openjdk-target=aarch64-linux-gnu \
--disable-headful
make -j$(nproc)

内容的提问来源于stack exchange,提问作者Ekaterina Ivanova iceja.net

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:36:05