1 Tâche: transplanter gdb sur arm-linux
version gdb: gdb-7.12.tar.gz
termcap 版本 : termcap-1.3.1.tar.gz
Chaîne d'outils de compilation croisée: arm-hisiv500-linux
2 greffe de termcap
-
cd
termcap-1.3.1 /
-
-
./configure --host = arm-linux --prefix = $ ( pwd ) /../ termapinstall --without-ada - activer -termcap --with-shared
Remarque: Bien que la commande configure ci-dessus ait été exécutée, vous constaterez que le gcc dans le Makefile de termcap-1.-3.1 n'a pas changé, vous devez donc changer manuellement le compilateur dans le Makefile.
-
vim
Makefile
-
-
# .............
-
# Ajoutez le nom de la chaîne d'outils croisée correspondante avant gcc
-
CC
= arm-hisiv500-linux-gcc
-
AR
= bras-hisiv500-linux-ar
-
RANLIB
= bras-hisiv500-linux-ranlib
-
# ..........
Après avoir changé le Makefile, exécutez la commande en tant qu'utilisateur root
faire faire installer
3 ports gdb
-
cd
gdb-7.12 /
-
-
./configure --host = arm-hisiv500-linux - activer -shared --prefix = $ ( pwd ) /../ gdbinstall --without-x - désactiver -gdbtk - désactiver -tui - sans-inclus -regex --without-included-gettext LDFLAGS = "-L $ (pwd) /../termapinstall/lib" CPPFLAGS = "-I $ (pwd) /../termapinstall/include"
-
-
faire
Après la configuration, exécutez la commande make, l'erreur suivante apparaîtra:
-
/ home /
gdb -7.12 / gdb / c-exp. y: 2381 : référence non définie à'_obstack_free '
-
c-exp.o: Dans la fonction'parse_string_or_char ':
-
/ home /
gdb -7.12 / gdb / c-exp. y: 2127 : référence non définie à'_obstack_free '
-
c-exp.o: Dans la fonction 'c_yylex':
-
/ home /
gdb -7.12 / gdb / c-exp. y: 3071 : référence non définie à'_obstack_free '
-
ada-exp.o: Dans la fonction'ada_parse (parser_state *) ':
-
/ home /
gdb -7.12 / gdb / ada-exp. y: 745 : référence non définie à'_obstack_free '
-
d-exp.o: Dans la fonction'parse_string_or_char ':
-
/ home /
gdb -7.12 / gdb / d-exp. y: 906 : référence non définie à'_obstack_free '
-
d-exp. o: / home / /gdb-7.12/ gdb / d-exp. y: 1538 : suivez plus de références non définies à _obstack_free
L'erreur rapportée ci-dessus est que le compilateur n'a pas trouvé la fonction _obstack_free (), qui est une référence de définition. Ensuite, j'ai cherché la fonction _obstack_free () dans le répertoire / usr / include / et j'ai trouvé qu'il y avait une fonction obstack_free (), mais pas la fonction _obstack_free ().
Ensuite, je suis allé chercher la fonction obstack_free () dans la chaîne d'outils de compilation croisée, et j'ai trouvé qu'il n'y avait pas d'obstack_free () mais _obstack_free ().
Sur cette base, j'ai deviné que c'était un problème avec la version gdb, puis j'ai entré dans le répertoire gdb-7.12 / include et j'ai changé tous les _obstack_free () qui apparaissaient dans le fichier d'en-tête obstack.h en fonction obstack_free (). Puis exécutez la commande:
-
faire
-
-
faire
installer
La compilation est terminée avec succès.
Le fichier gdb compilé final mesure 25 Mo, il devrait donc contenir des tables de symboles. Je dépouille donc le fichier exécutable gdb, et enfin la taille du programme gdb est de 4M
arm-hisiv500-linux-strip ./gdb -o armgdb
Enfin, copiez armgdb sur la carte de développement et exécutez-le.
plus de!