我正在运行 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 中收到上述错误。
发生什么事了?谢谢。
答案1
问题不在于您没有 ctype.h,因为您需要它来编译程序。对于您来说,这取决于 gdb 定位包含的方式。也许您需要使用“locate ctype.h”并在 gdb 中设置包含目录,如下所示:
设置替代路径 /usr/src/include /mnt/include
请看这里:https://sourceware.org/gdb/onlinedocs/gdb/Source-Path.html