2014-09-14 2 views
0

Я пытаюсь построить кросс-компилятор. Я следую этому руководству: http://wiki.osdev.org/GCC_Cross-CompilerBuild cross compiler - error: libmpfr не найден

Я установил binutils в/opt/cross. теперь я пытаюсь установить gcc-4.7.4 с mpfr-2.4.2. Я использовал команды для подготовки и настройки:

export PREFIX="$HOME/opt/cross" 
export TARGET=i686-elf 
export PATH="$PREFIX/bin:$PATH" 

mv gmp-4.3.2 gcc-4.7.4/gmp 
mv mpfr-2.4.2 gcc-4.7.4/mpfr 
mv mpc-0.8.1 gcc-4.7.4/mpc 

# i am in usr/src directory 
mkdir build-gcc 
cd build-gcc 

../gcc-4.7.4/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers 

Теперь я использую make all-gcc строить, но я получаю следующее сообщение об ошибке: configure: error: libmpfr not found or uses a different ABI (including static vs shared).

Почему это происходит и как я могу это исправить?

Спасибо!

+0

Вы смотрели на [croostool-нг] (http://crosstool-ng.org /) или даже [Buildroor] (http://buildroot.uclibc.org/)? Эти проекты позаботятся о создании инструментальной цепочки. – yegorich

+0

Вы должны получить config.log, который соответствует этой ошибке конфигурации, он может быть похоронен внутри некоторого подкаталога. Это поможет определить основную причину проблемы. – rubenvb

ответ

3

Вы можете проверить, как «configure» проверяет, доступен ли libmpfr (где configure ищет его) или просто укажите путь к вашему libmpfr - возможно, с помощью --enable-libmpfr =/path/или что-то вроде этого.

Второй вариант, чтобы дать Gcc пункт Настройка, чтобы отключить использование MPFR (--disable-MPFR?)

Я предполагаю, что вы пытаетесь скомпилировать GCC для другой архитектуры, чем ваш хост. Может быть, gcc configure нашел libmpfr, но это mpfr от вашего хоста, а не от вашей целевой архитектуры? Вы можете заглянуть в файл config.log, если он есть, и проверить, какой mpfr использует configure.

-1

ли вы пытаетесь связать библиотеки с экспорт LD_LIBRARY_PATH =./GCC-4.7.4/MPFR/.libs