6

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

4

2 回答 2

4

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

1)安装的构建必需品:

sudo apt-get install build-essential

2)安装libusb(因为我尝试构建包发现没有us​​b.h):

sudo apt-get install libusb-dev

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

因此,Linux Mint 17.2(至少)需要将一些库安装到 GCC,最基本的是 build-essential。

于 2015-12-26T06:59:49.330 回答
3

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

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

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

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

于 2015-12-25T23:02:47.607 回答