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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
./fnacontroller: symbol lookup error: ./fnacontroller: undefined symbol: _ZN7fnacore6Device11getIfNumberEv
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
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)
nm me montre que le simple existe (T) dans la librairie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
nm ../fnacore/libfnacore.so.1 | grep "_ZN7fnacore6Device11getIfNumberEv"
0000000000007380 T _ZN7fnacore6Device11getIfNumberEv
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 fnacontroller | grep "_ZN7fnacore6Device11getIfNumberEv"
                 U _ZN7fnacore6Device11getIfNumberEv
Quelqu'un peut m'aider à y voir clair car je ne comprends pourquoi cette erreur d’édition des liens.

Merci.