gpt4 book ai didi

gcc 使用 newlib 而不是 glibc?

转载 作者:行者123 更新时间:2023-12-04 11:15:04 49 4
gpt4 key购买 nike

我想使用 newlib 而不是 glibc 来编译小的静态二进制文件。 (我不打算交叉编译,因为二进制文件将被同一台计算机使用。)我相信我需要为此编译一个单独的 gcc 吗?

我编译了gcc:

./configure --prefix=/home/myuser/Desktop/gcc-4.4.5 --libexecdir=/home/myuser/Desktop/gcc-4.4.5 --libdir=/home/myuser/Desktop/gcc-4.4。 5 --with-gxx-include-dir=/home/myuser/Desktop/gcc-4.4.5 --enable-languages=c --enable-libmudflap --disable-multilib --disable-libssp --disable-nls --with-newlib --with-gnu-as --with-gnu-ld --with-system-zlib
制作

它编译没有错误,但是现在当我尝试编译一个简单的 Hello World 时!程序它想使用来自/usr 的头文件而不是我上面指定的路径。这些是一些错误:

在/home/myprogram/Desktop/myprogram.c:1 包含的文件中:
/usr/include/stdio.h:34:21: 错误: stddef.h: 没有那个文件或目录
在/usr/include/stdio.h:75 包含的文件中,
来自/home/myprogram/Desktop/myprogram.c:1:
/usr/include/libio.h:53:21: 错误: stdarg.h: 没有那个文件或目录
在/usr/include/stdio.h:75 包含的文件中,
来自/home/myprogram/Desktop/myprogram.c:1:
/usr/include/libio.h:332: 错误:'size_t' 之前的预期说明符限定符列表
/usr/include/libio.h:364: 错误:'size_t' 之前的预期声明说明符或 '...'
/usr/include/libio.h:373: 错误:“size_t”之前的预期声明说明符或“...”

我究竟做错了什么 ?是否需要编译一个新的 gcc 或者我可以使用我现有的 gcc 并使用 newlib 而不是 glibc ???

最佳答案

您不需要为此重建 gcc;您只需要将现有的 gcc 指向正确的内容(使用 -I-L 等)并告诉它不要引入通常的系统内容(使用 -nostdlib )。

newlib README file 中标题为“共享新库”的部分在本地编译时,具有用于构建和链接共享或静态 newlib 的 rune 。

关于gcc 使用 newlib 而不是 glibc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5749180/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com