Я попробовал несколько методов за сборку и устанавливаю gcc-5.4.0 на моем ПК;
Я выполнил этот код:
GCC_VERSION="5.4.0"
WORKDIR="$HOME/src/"
INSTALLDIR="/platform"
cd $WORKDIR
wget http://www.netgull.com/gcc/releases/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.bz2
tar -xf gcc-${GCC_VERSION}.tar.bz2
cd gcc-${GCC_VERSION}
./contrib/download_prerequisites
cd ..
mkdir gcc-build
cd gcc-build
../gcc-${GCC_VERSION}/configure \
--prefix=${INSTALLDIR} \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-languages=all \
&& make \
&& make install
который не работал; сообщение мне, что я должен отключить мультиlib.
Я сделал это с помощью этого кода:
GCC_VERSION="5.4.0"
WORKDIR="$HOME/src/"
INSTALLDIR="/platform"
cd $WORKDIR
wget http://www.netgull.com/gcc/releases/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.bz2
tar -xf gcc-${GCC_VERSION}.tar.bz2
cd gcc-${GCC_VERSION}
./contrib/download_prerequisites
cd ..
mkdir gcc-build
cd gcc-build
../gcc-${GCC_VERSION}/configure \
--prefix=${INSTALLDIR} \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-languages=all \
--disable-multilib \
&& make \
&& make install
который работал в течение почти получаса и сделал каталог целым 1 ГБ. Таким образом, я сомневался относительно исходного файла и прервал его.
Затем я пытался загрузить gcc-5.4.0 с другого источника.
Скомпилированный со следующей командой:
GCC_VERSION="5.4.0"
WORKDIR="$HOME/src/"
INSTALLDIR="/platform"
cd $WORKDIR
wget http://ftpmirror.gnu.org/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.bz2
tar -xf gcc-${GCC_VERSION}.tar.bz2
cd gcc-${GCC_VERSION}
./contrib/download_prerequisites
cd ..
mkdir gcc-build
cd gcc-build
../gcc-${GCC_VERSION}/configure \
--prefix=${INSTALLDIR} \
--disable-multilib \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-languages=all \
&& make \
&& make install
Снова я получил ошибку, Вы знаете какой-либо прямой способ, которым я могу сделать это?
Когда пакет уже - половина гигабайта, это - гигабайт при распаковке источников.
, Но переключатель --disable-multilib
ерунда при создании компилятора C/C++.
сообщение об ошибке отключают мультиlib средства: не может создать 32-разрядный блок, потому что пропавшие без вести 32-разрядного glibc
библиотека. Я имею, вчера столкнулся с этой проблемой и должен был установить yum install glibc-devel.i686
. На Ubuntu Linux это должно быть apt-get install glibc-dev.i386
или вероятно libc6-dev-i386
. Просто вручную обеспечьте пакеты, от которых это зависит, или зафиксируйте это (вероятно, устаревший) ./contrib/download_prerequisites
сценарий оболочки для включения этого пакета.
Еще Вы закончите с компилятором, который не может создать для x86
, но только x86_64
.
... который работал в течение почти получаса и сделал каталог целым 1 ГБ. Таким образом, я сомневался относительно исходного файла и прервал его.
Возможно, что Вы на правильном пути и помчались в остановку сборки преждевременно. Завися на основании Вашей машины, 30 минут не звучат как неблагоразумное время для создания GCC. Самое главное Вы создаете использование make
, что означает, что исходные файлы компилируются последовательно, по одному, который является значением по умолчанию make. Для ускорения сборки значительно, выполненный make -j
, который создаст parallely, использующий все ядра процессора, или make -j4
для выполнения 4 параллелей компилируют задания, например.
Что касается размера сборки, я подозреваю, что по умолчанию, GCC создает в Режиме отладки, который объяснил бы чрезмерно увеличенную в размерах папку сборки (для сравнения, отладочная сборка LLVM могла легко сложить до> 4 ГБ).
Однако, если Вы не должны создавать свою собственную копию GCC из источника, Вы могли использовать предварительно созданный 5,4 пакетов, доступных на Панели запуска.
Для GCC (C только), захватите .deb файлы и установите их в порядке:
mkdir ~/Downloads/gcc-5.4-deb && cd ~/Downloads/gcc-5.4-deb
wget http://launchpadlibrarian.net/375474546/gcc-5-base_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://launchpadlibrarian.net/375474798/libasan2_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://launchpadlibrarian.net/375474828/libmpx0_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://launchpadlibrarian.net/375474805/libgcc-5-dev_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://launchpadlibrarian.net/375474748/cpp-5_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://launchpadlibrarian.net/375474755/gcc-5_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i gcc-5-base_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i libasan2_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i libmpx0_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i libgcc-5-dev_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i cpp-5_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i gcc-5_5.4.0-6ubuntu1~16.04.10_amd64.deb
Для поддержки C++ добавьте следующее:
wget http://launchpadlibrarian.net/375474836/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://launchpadlibrarian.net/375474834/libstdc++-5-dev_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://launchpadlibrarian.net/375474751/g++-5_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i libstdc++-5-dev_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i g++-5_5.4.0-6ubuntu1~16.04.10_amd64.deb
Действительно отметьте это, понизив libstdc++6
может вызвать поломку некоторых пакетов (например, cmake
и firefox
на моей Ubuntu 18.10). Хранение нескольких libstdc ++ является технически возможным, но трудным выполнить и конечно не идеальное.
Я должен был установить следующие пакеты в дополнение к тому, что упомянул valiano:
wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libcilkrts5_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libubsan0_5.4.0-6ubuntu1~16.04.10_amd64.deb
wget http://cz.archive.ubuntu.com/ubuntu/pool/main/i/isl/libisl15_0.16.1-1_amd64.deb
wget http://cz.archive.ubuntu.com/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.4-1_amd64.deb
Различие между gcc 5.5.0 и gcc 5.4 так минимально, что, возможно, Вы никогда не будете знать различия. У меня есть gcc 5.5.0 (gcc-5), установленный в Ubuntu 18.04, и я не знаю ни о какой функциональности, которую это пропускает, потому что мне не установили gcc 5.4 также.
Вы не должны создавать gcc-5 в Ubuntu 18.04; вместо этого это может быть установлено с Кв. Для установки gcc 5.5.0 в Ubuntu 18.04 открывают терминал и тип:
sudo apt install gcc-5
Несколько версий gcc могут быть установлены друг вместе с другом в Ubuntu 18.04, например, gcc-5 и gcc-8. Можно изменить значение по умолчанию gcc версия при помощи update-alternatives
команда для определения, на какой фактический файл ссылается родовое название, например, которым ссылаются на фактический файл gcc
. Для получения дополнительной информации см. ответы на этот вопрос: Как изменить компилятор GCC по умолчанию в Ubuntu?.