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

x86主机交叉编译时安装ARM64版ncurses包及依赖错误解决

解决x86平台交叉编译ARM64程序时ncurses依赖安装失败问题

问题场景

在x86机器上交叉编译ARM64程序时出现编译错误:Error: cannot find -lncurses,尝试安装ARM64版ncurses相关包:

sudo dpkg --add-architecture arm64
sudo apt update
sudo apt install libncurses5:arm64 libncursesw5:arm64
sudo apt install libncurses5-dev:arm64 libncursesw5-dev:arm64

但执行后出现依赖未满足错误,报错信息如下:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libncurses-dev:arm64 : Depends: libncurses6:arm64 (= 6.2-0ubuntu2.1) but it is not going to be installed
                        Depends: libncursesw6:arm64 (= 6.2-0ubuntu2.1) but it is not going to be installed
                        Depends: libc6-dev:arm64 but it is not going to be installed or
                                 libc-dev:arm64
 libtinfo6:arm64 : Depends: libc6:arm64 (>= 2.17) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

解决方法

方法一:补装缺失的核心依赖

直接安装报错中明确提到的未满足依赖,先解决ARM64架构的基础C库和ncurses依赖包:

sudo apt install libc6:arm64 libc6-dev:arm64 libncurses6:arm64 libncursesw6:arm64
sudo apt install libncurses5-dev:arm64 libncursesw5-dev:arm64

方法二:使用交叉编译工具链配套库

如果使用官方交叉编译工具链(如gcc-aarch64-linux-gnu),直接安装对应架构的ncurses开发包,避免多架构依赖冲突:

sudo apt install gcc-aarch64-linux-gnu
sudo apt install libncurses-dev:aarch64-linux-gnu

编译时指定工具链的库路径,示例命令:

aarch64-linux-gnu-gcc your_program.c -o your_program -lncurses -L/usr/aarch64-linux-gnu/lib/

方法三:手动交叉编译ncurses源码

若上述方法无效,可手动下载ncurses源码进行交叉编译:

  1. 下载并解压源码:
wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.4.tar.gz
tar xzf ncurses-6.4.tar.gz
cd ncurses-6.4
  1. 配置交叉编译参数:
./configure --host=aarch64-linux-gnu --prefix=/usr/aarch64-linux-gnu --enable-shared
  1. 编译并安装:
make
sudo make install

方法四:修复系统损坏的包

若系统存在broken packages,先执行修复操作:

sudo apt-get install -f
sudo dpkg --configure -a
sudo apt update && sudo apt upgrade

修复完成后再重新尝试安装ARM64版ncurses包。


内容的提问来源于stack exchange,提问作者Aayush Shrivastava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:42:40