【发布时间】:2018-07-11 04:24:00
【问题描述】:
我想在 macOS 上构建 xv6,所以我从 a Homebrew Tap 安装了交叉编译器工具链 i386-elf-gcc 和 i386-elf-gcc。
问题是 i386-elf-gcc 在编译时无法链接标准库。我在一个简单的c文件上进行了测试,得到了以下错误。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
printf("d\n");
return 0;
}
错误:
> i386-elf-gcc --sysroot=usr/includes test.c
test.c:1:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^~~~~~~~~
compilation terminated.
【问题讨论】:
-
看起来像一个错误的安装。 (交叉)编译器附带标准库和头文件
-
“问题是 i386-elf-gcc 无法链接标准库” --> 不完全是。到目前为止,这不是 链接 问题,但是编译器对标准头文件所在的位置感到困惑。
-
@EugeneSh。你认为这可能是由自制水龙头中的这个option 引起的吗?
-
@chux 我在这个 gcc 中添加了一个
--sysroot=usr/includes选项,但它并没有真正的帮助。 -
好吧。不。这个选项告诉当 building gcc 时不要使用任何目标头文件。你能找到工具链路径中的标题吗?
标签: c gcc cross-compiling xv6