2017-10-17 47 views
0

我正在尝试编译ARM(Xvisor)的开源项目,但显然gcc正在使用错误的ldfile链接库libncurse确实当我编译时,我得到以下错误:gcc使用错误的ldfile为系统llibrary

/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正在使用蚊蚋ldfile而不是系统ldfile我不明白。

+1

你大概到主机的库链接到交叉编译应用程序。 – arrowd

+0

@arrowd你知道我可以链接正确的图书馆吗?我不明白为什么在Debian上它工作,而不是在Ubuntu上。如何链接库,我怎么能认识 –

+0

arrowd事实上,它似乎来自交叉编译项目的lib文件。 Makefile不会成功读取本地导出的变量$ CROSS_COMPILE。所以Makefile使用gcc而不是arm-eabi-gcc。你有什么想法吗? –

回答

1

尝试重新安装建立必要的包装

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

/usr/gnat不是系统库

主目录
1

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