Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/04/2014, à 08:58

Ullaakut

Problème de compilation termcaps/ncurses

Bonjour, je développe sous Système Unix en C depuis un moment, et après avoir violemment détruit mon OpenSuse, je me suis dit que ça serait chouette de repasser sous Ubuntu comme au bon vieux temps. Cependant, j'ai un problème avec les termcaps et la lib ncurses. J'ai installé les paquets nécessaires, j'ai bien un curses.h et ncurses.h dans mon /usr/include, je compile avec un joli makefile tout propre qui me fait un -lncurses en flag, et j'ai include les headers curses.h et ncurses.h dans chacun de mes fichiers.

Voici le résultat de ma compilation:

Monsieur Bite $> make re
Directory cleaned
cc -o my_select src/main.c src/my_rev_video.c src/my_choices.c src/my_put_nbr.c src/my_underline.c src/my_basics.c src/my_show_list.c src/my_put_in_list.c src/my_list_creat.c src/my_clear_screen.c src/my_init_term.c src/my_raw_mode.c src/my_select.c -L lib/ -I include/ -Wall -Wextra -O3 -Lncurses
/tmp/cchmfkd6.o: In function `my_rev_video':
my_rev_video.c:(.text+0xc): undefined reference to `tgetstr'
my_rev_video.c:(.text+0x20): undefined reference to `tputs'
my_rev_video.c:(.text+0x34): undefined reference to `tgetstr'
my_rev_video.c:(.text+0x48): undefined reference to `tputs'
/tmp/ccFEvHFM.o: In function `my_underline':
my_underline.c:(.text+0xc): undefined reference to `tgetstr'
my_underline.c:(.text+0x20): undefined reference to `tputs'
my_underline.c:(.text+0x34): undefined reference to `tgetstr'
my_underline.c:(.text+0x48): undefined reference to `tputs'
/tmp/ccbIdwOC.o: In function `my_clear_screen':
my_clear_screen.c:(.text+0x1c): undefined reference to `tgetstr'
my_clear_screen.c:(.text+0x30): undefined reference to `tputs'
/tmp/cctDXunc.o: In function `my_init_term':
my_init_term.c:(.text+0x180): undefined reference to `tgetent'
collect2: error: ld returned 1 exit status
make: *** [my_select] Error 1


Des idées pour réussir à le faire compiler? Si possible sans bidouiller, car l'idéal serait qu'en passant mes sources à quelqu'un d'autre il puisse le compiler aussi peu importe sa distrib!

Merci d'avance ;)

Hors ligne

#2 Le 21/04/2014, à 11:20

nicolas06600

Re : Problème de compilation termcaps/ncurses

Essaie d'inclure le header term.h. Cf: http://linux.die.net/man/3/tgetstr

Hors ligne

#3 Le 21/04/2014, à 12:21

Ullaakut

Re : Problème de compilation termcaps/ncurses

J'include déjà term.h également, et ça compilait sur mon précédent dump. Du coup j'ai pas essayé de locate term.h, je fais ça après ma pause déjeuner. Il faut installer quel paquet pour avoir la lib term?

Hors ligne

#4 Le 22/04/2014, à 16:24

Ullaakut

Re : Problème de compilation termcaps/ncurses

Après vérification, j'ai bien le term.h, j'ai eu beau include le /usr/include/term.h et le /usr/include/ncursesw/term.h, et malgré leur présence dans les term.h, les fonctions de termcaps n'étaient pas trouvées. Un ami à moi m'a dit que ça pouvait venir de l'ordre dans lequel je compilais, mais j'ai eu beau mettre mes flags avant ou après les sources, ça n'a pas changé le résultat... hmm

Hors ligne