Выяснилось, что это была поврежденная регистрация SLES. вот ссылка, которая мне помогла.
Чтобы скомпилировать gcc
в Alpine Linux, ниже приведен список шагов:
apk add --no-cache make build-base mpfr-dev mpc1-dev isl-dev
wget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
tar -xzvf gcc-7.3.0.tar.gz
mkdir objdir
cd objdir
./../gcc-7.3.0/configure --prefix=$HOME/GCC-7.3.0 --with-pkgversion="version" --with-bugurl="example.com" --disable-multilib --enable-languages=c --disable-werror
make all-gcc
make all-target-libgcc
make install-gcc
make install-target-libgcc
Мы создаем libgcc
библиотеку поддержки низкого -уровня, доступность которой компилятор ожидает во время компиляции. Связывание с libgcc
обеспечивает работу с целыми числами, числами с плавающей запятой, десятичными числами, раскруткой стека (, полезными для обработки исключений )и другими вспомогательными функциями. Обратите внимание, что мы не просто запускаем make && make install
, так как это слишком много, не все компоненты gcc
готовы для вашей незавершенной операционной системы.
Рабочий вариант с правильными --target
и т.д.
export GCC_VERSION=7.3.0
apk add --no-cache make build-base mpfr-dev mpc1-dev isl-dev
wget https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.gz
tar -xzf gcc-${GCC_VERSION}.tar.gz
cd gcc-${GCC_VERSION}
./configure \
--prefix=/usr/local \
--build=$(uname -m)-alpine-linux-musl \
--host=$(uname -m)-alpine-linux-musl \
--target=$(uname -m)-alpine-linux-musl \
--enable-checking=release \
--disable-fixed-point \
--disable-libmpx \
--disable-libmudflap \
--disable-libsanitizer \
--disable-libssp \
--disable-libstdcxx-pch \
--disable-multilib \
--disable-nls \
--disable-symvers \
--disable-werror
make -j $(nproc)
make install
Тестовый компилятор C:
echo '#include <stdio.h>
int main() {
printf("Hello, C world!\n");
return 0;
}' | gcc -x c - &&./a.out
Тестовый компилятор C++:
echo '#include <iostream>
int main () {
std::cout << "Hello, C++ world!\n";
return 0;
}' | g++ -x c++ - &&./a.out