2017-10-17 25 views
0

Je suis tryin pour compiler un projet opensource pour ARM (Xvisor) mais apparemment gcc utilise un mauvais LdFile pour relier la bibliothèque libncurse En effet, lorsque je compile, je me suis l'erreur suivante:gcc en utilisant le mauvais LdFile pour le système llibrary

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

Et ldconfig semble avoir la bibliothèque en elle

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 

Je ne comprends pas pourquoi gcc utilise le LdFile moucheron au lieu du système LdFile.

+1

Vous tentez probablement de lier la bibliothèque de l'hôte à une application compilée de manière croisée. – arrowd

+0

@arrowd Savez-vous que je peux lier la bonne bibliothèque? Je ne comprends pas pourquoi sur Debian ça a marché et pas sur Ubuntu. Comment puis-je lier la bibliothèque et comment puis-je reconnaître le fichier lib dans le projet –

+0

arrowd En effet, il semble provenir de la compilation croisée. Le Makefile ne parvient pas à lire la variable exportée locale $ CROSS_COMPILE. Donc le Makefile utilise gcc au lieu de arm-eabi-gcc. Avez-vous une idée à ce sujet? –

Répondre

1

Essayez de réinstaller build-essential package

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

/usr/gnat est pas le répertoire principal de la bibliothèque système

1

La solution est que Makefile utilisait l'outil gcc au lieu de la compilation croisée gcc: arm-eabi-gcc