C'est étrange car j'ai été en mesure d'obtenir l'erreur ci-dessous pour aller loin en supprimant la référence à libm.
gcc -o example example.o -Wl -L/home/kensey/cdev/lib -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -L/usr/lib/x86_64-linux-gnu -lm -lrt -ldl -lcdev -L/home/kensey/www.tools/gplot-lib -lgplot -L/home/kensey/www.tools/gd1_3ret -lgd -lxml2 -lcurl
/usr/bin/ld: /home/kensey/www.tools/gplot-lib/libgplot.a(set.o): undefined reference to symbol 'floor@@GLIBC_2.2.5'
/usr/bin/ld: note: 'floor@@GLIBC_2.2.5' is defined in DSO /usr/lib/x86_64-linux-gnu/libm.so so try adding it to the linker command line
/usr/lib/x86_64-linux-gnu/libm.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
Donc, si je supprime l' -lm
de la partie de la commande, je n'ai pas l'erreur. Cependant, je me demande si quelqu'un sait pourquoi la suppression d'une référence à une bibliothèque qui est nécessaire de corriger cela. Comment fonctionne l'éditeur de liens de savoir qui de la bibliothèque de regarder dans? Aussi existe - il un moyen pour interroger un construit exécutable et de dire que la bibliothèque ne vous résoudre la référence à "plancher"? de toute évidence, il se passe quelque chose que je ne comprends pas, et ça m'embête...