2014-10-05 74 views
0

我试图建立交叉编译GCC(主机 - Mac OS X的目标 - ARM),这是链接到我刚才的问题和答案(How to make ARM cross compilation on Mac OS X (error: invalid listing option `r' - cross compiling error)GCC标准头迷宫

我需要建立libgcc的,所以我运行命令make all-target-libgcc,似乎一切都很正常,直到我遇到这样的错误:

/Users/smcho/Desktop/gcc/gcc-build-arm/./gcc/xgcc -B/Users/smcho/Desktop/gcc/gcc-build- 
arm/./gcc/ -B/opt/cross/arm-elf-eabi/bin/ -B/opt/cross/arm-elf-eabi/lib/ -isystem 
/opt/cross/arm-elf-eabi/include -isystem /opt/cross/arm-elf-eabi/sys-include -g -O2 -mthumb - 
O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast- 
qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fno- 
inline -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fno-inline -I. -I. - 
I../../.././gcc -I../../../../gcc-4.8.3/libgcc -I../../../../gcc-4.8.3/libgcc/. - 
I../../../../gcc-4.8.3/libgcc/../gcc -I../../../../gcc-4.8.3/libgcc/../include -DHAVE_CC_TLS - 
o _eprintf.o -MT _eprintf.o -MD -MP -MF _eprintf.dep -DL_eprintf -c ../../../../gcc- 
4.8.3/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS 
../../../../gcc-4.8.3/libgcc/libgcc2.c:2043:19: fatal error: stdio.h: No such file or directory 
#include <stdio.h> 
       ^

总之,libgcc2.c中找不到stdio.h头文件。 我从brew使用gcc-4.8,所以我已经在/usr/local/Cellar/gcc49/4.9.1/lib/gcc/x86_64-apple-darwin13.3.0/4.9.1/include有一个包含目录,我认为这是一个简单的修复。问题是<stdio.h>被埋在c++/tr1中。此外,它只是一行#include <tr1/cstdio>,它指向子目录中的另一个标题。

从命令行,我知道我有两个目录(-isystem /opt/cross/arm-elf-eabi/sys-include/opt/cross/arm-elf-eabi/include),我可以符号链接到;这两个目录不存在。

但是,我迷路了,因为我不知道什么路径符号链接到他们。我只是试图链接/opt/cross/arm-elf-eabi/include.../4.9.1/include/c++/tr1,以便找到stdio.h,但由于它使用了,我还有另一个编译错误。

我尝试了很多组合,但我总是以错误结束。这只是简单的C代码,所以我不认为我需要复杂的C++头文件。

  • 有没有简单的方法来解决这个问题?我的意思是,我可以下载C头文件并将目录链接到include目录吗?
  • gcc(不是g ++)如何找到这个包含目录迷宫的stdio.h?设置如何?

任何指针,将不胜感激。

回答

0

对于mac os x,头文件位于/usr/include。我可以通过符号链接指向这个目录来解决这个问题。