«configure: error: не удается запускать программы, скомпилированные на C» при компиляции gcc на Alpine Linux

Выяснилось, что это была поврежденная регистрация SLES. вот ссылка, которая мне помогла.

https://www.novell.com/support/kb/doc.php?id=3303599

2
22.03.2018, 13:11
2 ответа

Чтобы скомпилировать 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готовы для вашей незавершенной операционной системы.

0
27.01.2020, 22:18

Рабочий вариант с правильными --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
2
27.01.2020, 22:18

Теги

Похожие вопросы