#gcc #mingw #cross-compiling
Вопрос:
Я пытаюсь скомпилировать binutils и GCC (для Windows) в соответствии с этим руководством. Компиляция binutils завершилась без ошибок , однако GCC потерпел неудачу
Шаги, которые я предпринял
Установлен MinGW с зависимостями, указанными в руководстве. Установил исходный код GCC и binutils и распаковал их в $HOME/src
папку
и в оболочку MinGW:
export PREFIX="$HOME/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"
cd $HOME/src
mkdir build-binutils
cd build-binutils
../binutils-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror
make
make install
до сих пор все шло без каких-либо ошибок
cd $HOME/src
# The $PREFIX/bin dir _must_ be in the PATH. We did that above.
which -- $TARGET-as || echo $TARGET-as is not in the PATH
mkdir build-gcc
cd build-gcc
../gcc-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c --without-headers
make all-gcc
make all-target-libgcc
make install-gcc
make install-target-libgcc
Во-первых, which
команда не удалась unrecognized command --
. Я убедился, что path_to_sysm_user/opt/cross/bin
это было добавлено в PATH, и двинулся дальше
Затем в make all-gcc
предупреждениях и ошибках выскочили:
../../gcc-10.3.0/gcc/mem-stats.h:215:72: warning: ISO C 11 does not support the 'I64' ms_printf length modifier [-Wformat=]
../../gcc-10.3.0/gcc/pretty-print.c: In function 'void eat_esc_sequence(HANDLE, int, const char*, const char*)':
../../gcc-10.3.0/gcc/pretty-print.c:530:22: error: 'COMMON_LVB_UNDERSCORE' was not declared in this scope
attrib_add |= COMMON_LVB_UNDERSCORE;
^~~~~~~~~~~~~~~~~~~~~
../../gcc-10.3.0/gcc/pretty-print.c:539:22: error: 'COMMON_LVB_REVERSE_VIDEO' was not declared in this scope
attrib_add |= COMMON_LVB_REVERSE_VIDEO;
^~~~~~~~~~~~~~~~~~~~~~~~
../../gcc-10.3.0/gcc/pretty-print.c:644:24: error: 'COMMON_LVB_REVERSE_VIDEO' was not declared in this scope
if (attrib_add amp; COMMON_LVB_REVERSE_VIDEO)
^~~~~~~~~~~~~~~~~~~~~~~~
# And it finished with
make[1]: *** [pretty-print.o] Error 1
make[1]: Leaving directory `/home/Ashok/src/build-gcc/gcc'
make: *** [all-gcc] Error 2