2017-10-17 75 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