GCC 找不到头文件

Posted

技术标签:

【中文标题】GCC 找不到头文件【英文标题】:Header files are not found by GCC 【发布时间】:2016-03-31 17:39:10 【问题描述】:

使用嵌入式 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 提供所需的所有标准环境的正常方法是什么?

【问题讨论】:

【参考方案1】:

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

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。

【讨论】:

【参考方案2】:

assert.h 不是gcc 的一部分,它是glibc 的一部分。

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

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

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

【讨论】:

山姆,我使用 Linux Mint 17.2。好的,将搜索该包。只是对单独安装 GCC 和标准库的可能性感到困惑。我会报告结果。谢谢!

以上是关于GCC 找不到头文件的主要内容,如果未能解决你的问题,请参考以下文章

vscode下运行c++找不到头文件是怎么回事

AndroidStudio 很多类红色高亮找不到,可以编译运行

自己编译的Python找不到numpy怎么办

自己编译的Python找不到numpy怎么办

找不到QT的头文件怎么办?

vc++编程找不到头文件。。。急求解决方法。。