[Ada][Adacore] Problème d'édition de lien avec GPS

Problème d'édition de lien avec GPS [Ada][Adacore] - Ada - Programmation

Marsh Posté le 20-01-2022 à 21:41:21    

Bonjour
 
Pardonnez mon problème je vous prie.
 
J'essai de compiler (produire l'executable) d'un vieux programme pour le mettre à jour.
 
J'ai un problème avec GPS à l'édition de lien ; Une suite de référence idefini.
 
Je ne sais pas comment parametrez GPS ou comment indiquer avec gnatmake l'endroit ou ce trouve les dll.
 
Je suis sur GPS 2020 sur Windws 10, j'ai mis les dll dans le répertoire bin du projet.
 
S'il vous plait !


Message édité par Profil supprimé le 20-01-2022 à 22:05:11
Reply

Marsh Posté le 20-01-2022 à 21:41:21   

Reply

Marsh Posté le 20-01-2022 à 21:48:07    

Erreur :
 
 


gnatmake -gnatW8 src/xborg.adb -gnatwa -o bin/xborg -D obj -aIsrc/lib -aIC:\GtkAda\include\gtkada\gtkada.relocatable\gtkada -largs -lgtkada -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0
gnatbind "-aOC:\Users\Nathalie Nattan\Warborg_2020-1.0.2\obj" -aIsrc/lib -aIC:\GtkAda\include\gtkada\gtkada.relocatable\gtkada -x "C:\Users\Nathalie Nattan\Warborg_2020-1.0.2\obj\xborg.ali"
gnatlink "C:\Users\Nathalie Nattan\Warborg_2020-1.0.2\obj\xborg.ali" -o bin/xborg.exe -lgtkada -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lgtkada
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lgtk-x11-2.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lgdk-x11-2.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -latk-1.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lgio-2.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lpangoft2-1.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lpangocairo-1.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lgdk_pixbuf-2.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lcairo
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lpango-1.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lfreetype
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lfontconfig
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lgobject-2.0
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: cannot find -lglib-2.0
collect2.exe: error: ld returned 1 exit status
gnatlink: error when calling C:\GNAT\2020\bin\gcc.exe
gnatmake: *** link failed.

Reply

Marsh Posté le 20-01-2022 à 22:01:53    

Ma commande est plutôt celle ci (désolé) :
 

C:\Users\Nathalie Nattan\Warborg_2020-1.0.2>gnatmake -gnatW8 src/xborg.adb -gnatwa -o bin/xborg -D obj -aIsrc/lib -aIC:\GtkAda\include\gtkada\gtkada.relocatable\gtkada -aOC:\GtkAda\lib\gtkada\gtkada.relocatable\gtkada -Lbin

Reply

Marsh Posté le 21-01-2022 à 17:03:53    

C'est le linker qui se plaint. Les DLL c'est pour exécuter le fichier fini, pour le linker faut des fichiers .a ou quelque chose comme ça, je sais plus trop. :o

Reply

Marsh Posté le 21-01-2022 à 17:31:01    

Salut rat de combat !
 
J'ai bien un répertoire avec des ".a"
 
Comment je dis a GPS ou à gnatmake d'aller chercher dans ce repértoire ?
 
Stp. Merci.

Reply

Marsh Posté le 21-01-2022 à 17:34:28    

Je ne connais pas du tout GPS ni gnatmake, mais il me semble que c'est basé sur GCC? Alors tu peux tenter de rajouter une option -Lnom_du_dossier. Voir p.ex. https://transang.me/library-path-in-gcc/

Reply

Marsh Posté le 21-01-2022 à 17:54:52    

Rat de combat, merci.
 
J'ai lancé comme ça :
 

gnatmake src/xborg.adb -o bin/xborg -aIsrc/lib -aIC:\GtkAda\include\gtkada\gtkada.relocatable\gtkada -LC:\GtkAda\lib


 
J'ai ça en retour :
 
 
Une list interminable de ce genre :


 
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: .\warborg-xborg.o:warborg-xborg.adb:(.text+0x245b6): undefined reference to `cairo_pattern_create_for_surface'
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: .\warborg-xborg.o:warborg-xborg.adb:(.text+0x2462b): undefined reference to `cairo_pattern_set_extend'
c:/gnat/2020/bin/../libexec/gcc/x86_64-pc-mingw32/9.3.1/ld.exe: .\warborg-xborg.o:warborg-xborg.adb:(.text+0x2463a): undefined reference to `cairo_surface_destroy'
collect2.exe: error: ld returned 1 exit status
gnatlink: error when calling C:\GNAT\2020\bin\gcc.exe
gnatmake: *** link failed.
 


 
J'ai rajouté -largs avec le -L, ça change rien apparemment.

Reply

Marsh Posté le 21-01-2022 à 17:58:27    

Je pense qu'il te manque encore des lib (en .a et en .dll), notamment Cairo.


Message édité par rat de combat le 21-01-2022 à 17:59:01
Reply

Marsh Posté le 21-01-2022 à 18:16:38    

Oui, elle manque toutes dit gnatmake.
 
Mais j'ai réouvert un projet en selectionant simple window dans GPS et c'est linké.
 
Donc pour moi tout va a peu près bien.
 
Merci rat de combat.

Reply

Marsh Posté le 21-01-2022 à 21:36:20    

C'est moi ou rat de combat a réussi à solutionner un de tes problèmes ? :ouch:  
 
2022 s'annonce très prometteuse comme année ! [:shimay:1]


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 21-01-2022 à 21:36:20   

Reply

Marsh Posté le 22-01-2022 à 09:53:02    

Disons qu'il est inteligent. Un minimum.
 
Et surtout sympa ! !

Reply

Marsh Posté le 22-01-2022 à 13:17:22    

MaybeEijOrNot a écrit :

C'est moi ou rat de combat a réussi à solutionner un de tes problèmes ? :ouch:  
 
2022 s'annonce très prometteuse comme année ! [:shimay:1]


 
Un indice chez vous : [:chacal31]
 
Pour une fois, ce n'était pas un problème lié à Ada, ni à la compréhension, rarement aisée, du besoin exact  [:gordon shumway]


---------------
On n'est jamais très fort pour ce calcul !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed