16.04を実行しています。私のCプログラムはisdigit(int)を使用しています。 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)
私はすでに実行しています:
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install build-essential
`outline.cでgccを実行しても警告は表示されません。私のプログラムの一番上には:
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include "outline.h"
上記のエラーはgdbでのみ表示されます。
何が起こっている?ありがとうございました。
問題は、プログラムをコンパイルするためにctype.hが必要なため、ctype.hがないことです。あなたの場合、それはgdbがインクルードを見つける方法に依存します。 「locate ctype.h」を使用して、gdb内にinclude-directoryを次のように設定する必要があるかもしれません。
set substitution-path/usr/src/include /mnt/include
こちらをご覧ください: https://sourceware.org/gdb/onlinedocs/gdb/Source-Path.html