GCC找不到头文件

6

与嵌入式C项目一起工作。这些库、包含文件等是为微控制器而设计的。我不需要在主机和操作系统(Linux Mint 64位)上使用GCC。通常情况下...

但现在我正在尝试使用GCC从Github编译mspdebug项目。但是在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。
据我所知,所有标准库和包含文件都是与GCC一起安装的。因此,我尝试重新安装GCC(4.8.4) - 但没有任何变化。
给GCC提供其所需的所有标准环境的正常方法是什么?
2个回答

4

感谢Sam Varshavchik提供的正确方向,我在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安装一些库,最基本的是build-essential。


3

assert.h 不是 gcc 的一部分,而是属于 glibc

很可能,您的 Linux 发行版将系统头文件放在单独的软件包中,需要您安装。

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

无论您使用哪个 Linux 发行版,都需要研究哪个软件包可以安装您构建所需的系统头文件。


Sam,我使用的是Linux Mint 17.2。好的,我会搜索那个软件包。只是对于单独安装GCC和标准库的可能性感到困惑。我会报告结果的。谢谢! - drvlas
我在 Fedora 上遇到了这个问题,不得不将 -target i386-linux-none 更改为 -target i386-linux-gnu。 - Mi G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接