Bonjour,
je développe une application en C++/Qt5.9 et j'ai un problème d’édition des liens que je n'arrive pas à résoudre.
l'application se divise en 2 partie : une partie librairie (libfnacore.so.1) et l’exécutable elle même (fnacontroller).
l'application fnacontroller utilise cette librairie libfnacore.so.1, mais lorsque je lance cette exécutable je reçois cette erreur :
ldd me montre bien que l’exécutable utilise bien ma librairie mais qu'il ne trouve pas le symbole :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ./fnacontroller: symbol lookup error: ./fnacontroller: undefined symbol: _ZN7fnacore6Device11getIfNumberEv
nm me montre que le simple existe (T) dans la librairie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ldd -d -r ./fnacontroller linux-vdso.so.1 (0x00007ffc8f9b9000) libfnacore.so.1 => /home/codeurne/lib/libfnacore.so.1 (0x00007f79f2ba1000) libsnmp.so.30 => /usr/lib/x86_64-linux-gnu/libsnmp.so.30 (0x00007f79f28be000) libQt5Gui.so.5 => /opt/Qt/5.9.1/gcc_64/lib/libQt5Gui.so.5 (0x00007f79f2110000) .... .... undefined symbol: _ZN7fnacore6Device11getIfNumberEv (./fnacontroller)
et nm ne trouve pas le symbole dans l’exécutable (U).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 nm ../fnacore/libfnacore.so.1 | grep "_ZN7fnacore6Device11getIfNumberEv" 0000000000007380 T _ZN7fnacore6Device11getIfNumberEv
Quelqu'un peut m'aider à y voir clair car je ne comprends pourquoi cette erreur d’édition des liens.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3nm fnacontroller | grep "_ZN7fnacore6Device11getIfNumberEv" U _ZN7fnacore6Device11getIfNumberEv
Merci.
Partager