如何将标准库链接到交叉编译器?

时间:2018-01-31 22:43:42

标签: c gcc cross-compiling xv6

我想在macOS上构建xv6,所以我从 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.

2 个答案:

答案 0 :(得分:0)

Here是一个类似的问题。我会在评论部分写它,但我没有这个特权。

答案 1 :(得分:0)

要解决,您可以尝试添加newlib库并将其交叉编译到您的体系结构中。下面的链接说免费软件newlib可以用作stdlib的源代码,以自己全部编译。

One problem is that the standard libraries provided with most software development tool suites arrive only in object form...