Linux —— 一鍵編譯安裝GCC腳本【Bash】

GCC編譯安裝腳本支持“yum、apt-get”包管理的linux系統(tǒng);

#!/usr/bin/env bash
set -e -x

SCRIPTPATH=$(pwd)
WORKSPACE=${SCRIPTPATH}/workspace

GCC_SOURCES_VERSION=latest
THREADS=$(grep -c ^processor /proc/cpuinfo)

[[ $EUID -ne 0 ]] && SUDO=sudo

command -v yum && PACKAGE_MANAGER=yum
command -v apt-get && PACKAGE_MANAGER=apt
$SUDO $PACKAGE_MANAGER install -y curl gcc gcc-c++ bzip2

if [[ "${GCC_SOURCES_VERSION}" == "latest" ]]; then
    GCC_SOURCES_VERSION=$(curl -sSL https://ftpmirror.gnu.org/gcc/ | grep -oE 'gcc-[0-9]+(\.[0-9]+)+' | sort -Vr | head -n1)
fi

GCC_VERSION_SHORT=$(echo "$GCC_SOURCES_VERSION" | grep -oE '[0-9]' | head -n1)

echo "Will download ${GCC_SOURCES_VERSION} (short version: $GCC_VERSION_SHORT)."

mkdir -p "${WORKSPACE}/gcc"
pushd "${WORKSPACE}/gcc"

wget https://ftpmirror.gnu.org/gcc/${GCC_SOURCES_VERSION}/${GCC_SOURCES_VERSION}.tar.xz
tar xf ${GCC_SOURCES_VERSION}.tar.xz
pushd ${GCC_SOURCES_VERSION}
./contrib/download_prerequisites
popd
mkdir gcc-build
pushd gcc-build
../${GCC_SOURCES_VERSION}/configure --enable-languages=c,c++ --disable-multilib
make -j $THREADS
$SUDO make install

popd
popd

$SUDO ln -sf /usr/local/bin/gcc /usr/local/bin/gcc-${GCC_VERSION_SHORT}
$SUDO ln -sf /usr/local/bin/g++ /usr/local/bin/g++-${GCC_VERSION_SHORT}
$SUDO ln -sf /usr/local/bin/gcc /usr/local/bin/cc
$SUDO ln -sf /usr/local/bin/g++ /usr/local/bin/c++

echo '/usr/local/lib64' | $SUDO tee /etc/ld.so.conf.d/10_local-lib64.conf
$SUDO ldconfig

hash gcc g++
gcc --version

export CC=gcc-${GCC_VERSION_SHORT}
export CXX=g++-${GCC_VERSION_SHORT}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容