Bonjour,
Dans mon programme j'utilise la fonction iconv() definie dans <iconv.h> .
Aucun problème quand je compile sous linux, mais quand je compile sous AIX, HPUX, ou MACOSX alors il est nécessaire d'inclure '-liconv' dans la commande de compilation. Avec ces 3 OSs la librairie n'est pas incluse dans l'exécutable, l'exécutable en est dépendant (shared library). Pourquoi est-ce que selon le système la librairie est liée ou incluse ? Y a t-il moyen de forcer la librairie à être "copiée" dans l'exécutable ?
Par ailleurs, si l'exécute la commande ldd sur mon exécutable (par exemple sous HPUX), j'obtiens la dépendance suivante:
/usr/local/lib/hpux32/libiconv.a (libiconv.so.2)
Là encore, les choses ne sont pas plus claires:
- d'après ce que je comprends, libiconv.so.2 est un symlink vers libiconv.a, mais où se trouve physiquement libiconv.so.2 ? J'ai cherché avec la commande 'find', mais je n'ai rien trouvé...
- en fin de compte mon programme dépend de libiconv.a, mais je croyais que les librairies portant l'extension '.a' étaient des librairies statiques. Pourquoi est-ce que j'ai ici un librairie partagée qui porte l'extension '.a'?
Merci d'avance pour tout éclaircissements.
Partager