web-dev-qa-db-fra.com

Est-ce que ctype.h est installé sur mon système?

Je suis en cours d'exécution 16.04. Mon programme C utilise isdigit (int). Je reçois ce qui suit quand je le lance sous gdb:

`Breakpoint 1, check_tok (token=0x6f7c20 <tokens> ".t") at outline.c:150
150 unsigned char *tp=token;
(gdb) s
151     if(isdigit(*tp))return NUM;
(gdb) 
__ctype_b_loc () at ../include/ctype.h:38
38  ../include/ctype.h: No such file or directory.
(gdb) 

J'ai déjà effectué:

Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install build-essential

`Je ne reçois aucun avertissement lorsque je lance gcc sur outline.c. au sommet de mon programme, j'ai:

#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include "outline.h"

Je ne reçois que l'erreur ci-dessus en gdb.

Que se passe-t-il? Je vous remercie.

1
Alvin P. Schmitt

Le problème n'est pas que vous n'avez pas ctype.h car vous en avez besoin pour compiler votre programme. Dans votre cas, cela dépend de la manière dont gdb localise l'inclusion. Peut-être devriez-vous utiliser "localiser ctype.h" et définir dans gdb le répertoire include comme:

 set substitute-path/usr/src/include /mnt/include

jetez un œil ici: https://sourceware.org/gdb/onlinedocs/gdb/Source-Path.html

2
0x0C4