GCC找不到头文件

时间:2015-12-25 22:29:30

标签: linux gcc include-path c-standard-library

使用嵌入式C项目。有用于微控制器的库,包括文件等。我不需要将GCC用于主机和操作系统(Linux Mint 64位)。通常......

但是现在我试图从Github编译mspdebug项目 - 当然还有GCC。我在make的开头就出现了错误:

mspdebug$ make
cc  -DUSE_READLINE  -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Itransport -Idrivers -Iutil -Iui -DLIB_DIR=\"/usr/local/lib/\"  -o util/btree.o -c util/btree.c
util/btree.c:19:20: fatal error: assert.h: No such file or directory
 #include <assert.h>
                    ^
compilation terminated.

我在所有可能的路径中搜索包含(我通过gcc -v命令得到了它们的列表) - 没有assert.h文件,也没有stdio.h等等。除了虚拟框目录,只有一个地方(GCC不搜索包括):/ usr / lib / syslinux / com32 / include

AFAIK,所有标准库和包含都随GCC一起安装。所以我尝试重新安装GCC(4.8.4) - 没有任何改变。

为GCC提供所需的所有标准环境的正常方法是什么?

2 个答案:

答案 0 :(得分:3)

null = myvar不是assert.h的一部分,它是gcc的一部分。

最有可能的是,您的Linux发行版会将系统标头放入您需要安装的单独软件包中。

例如,Fedora将头文件放在glibc包中。但是,你不能使用Fedora,因为Fedora的glibc-headers包依赖于gcc,以确保它被拉入。

无论您使用的Linux发行版是什么,您都需要研究哪个发行包将安装构建内容所需的系统头文件。

答案 1 :(得分:2)

由于Sam Varshavchik设置了正确的方向,我找到了信息in the stackoverflow。所以我做了以下事情:

1)安装了build-essential:

sudo apt-get install build-essential

2)安装了libusb(因为我尝试构建包,显示缺少usb.h):

sudo apt-get install libusb-dev

没关系! mspdebug(v.023)已编译并成功测试!

因此,Linux Mint 17.2(至少)需要在GCC中安装一些库,最基本的是构建必需的。