Pfffffff.... grosse deception
Je viens enfin d'installer Debian sur une machine annexe, à défaut de pouvoir faire de la cross compilation Ada pour Linux depuis Windows.
Je compile sous Debian, je copie les fichiers sur le serveur (un serveur Debian/Linux), et là, j'obtiens un beau message d'erreur qui me dit que libgnat est introuvable.
Seulement, je ne peux bien sûr pas installer de librairie, car c'est un serveur mutualisé. J'ai bien tenté de simplement copier dans librairie dans le repertoire de l'executable, et delui donner l'attribut d'execution, mais sans que ça n'ai le moindre effet : toujours le même message d'erreur de librairie introuvable.
J'ai tenté de passer l'option "-static" à gnatmake, mais le résultat est le même. Apparement -static ne semble s'appliquer qu'à la runtime, donc libgnarl, et non pas à libgnat.
Sous Windows, les exe produit par GNAT (3.15p) ne dépendait d'aucune librairie particulière, et je pensais naïvement qu'il en serait de même sous Linux. Mais que-neni mes chèr(e)s....
Est-il possible de compiler des executables avec GNAT (3.15p), qui pourront fonctionner sous n'importe quel Linux standard et basique ? En d'autres mots : est-il possible de générer avec GNAT, des applications qui ne dépendent que de la libc ? (libc6 en l'occurence)
Ou est-ce que je dois vraiment abandonner tout espoir finalement de passer à Ada pour toutes mes applications ?
------ EDIT et solution ---------------
Solution : il aut invoquer le compilateur en trois étapes
Voir explications dans le post #5
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 linux# gnatmake -f -c test.adb linux# gnatbind -static test.ali linux# gnatlink test.ali linux# strip test
Partager