2014-10-05 2 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))НКУ стандартные заголовки лабиринте

Мне нужно построить 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 заголовка. Я использую gcc-4.8 от brew, поэтому у меня уже есть каталог include в /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. Я мог бы сделать символическую ссылку, чтобы указать на этот каталог, чтобы решить эту проблему.

Смежные вопросы