gcc 为系统库使用了错误的 ldfile

gcc using the wrong ldfile for system llibrary

我正在尝试为 ARM (Xvisor) 编译一个开源项目,但显然 gcc 使用了错误的 ldfile 到 link 库 libncurse 实际上,当我编译时,我收到了以下错误:

/usr/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.3.1/ld: cannot find libncurses.so.5

而且ldconfig里面好像有图书馆

ldconfig -p | grep "curse"
libncursesw.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncursesw.so.5
libncurses.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncurses.so.5
libncurses.so.5 (libc6) => /lib/i386-linux-gnu/libncurses.so.5
libncurses.so.5 (libc6) => /lib32/libncurses.so.5

我不明白为什么 gcc 使用 gnat ldfile 而不是系统 ldfile。

解决方案是 Makefile 使用 gcc 工具而不是交叉编译 gcc:arm-eabi-gcc

尝试重新安装 build-essential 包

sudo apt-get remove build-essential && sudo apt-get install build-essential

/usr/gnat不是系统库的主目录