ভাগ করা লাইব্রেরি ছাড়া জিএমপি, এমপিএফআর, এমপিসি, ইএলএফ দিয়ে টুকরো টুকরো করে জিসিসি পিস কীভাবে ইনস্টল করবেন?


115

আমি কীভাবে জিসিসি (জিএনইউ সংকলক সংগ্রহ) টুকরো টুকরো ইনস্টল করব, বর্তমান সংস্করণটি
ব্যবহার করে নির্ভরতার সঠিক সংস্করণ ব্যবহার করে, প্যাকেজ ম্যানেজারটি ব্যবহার না করে (যেমন ইয়াম, আরপিএম, অ্যাপ, ডিপি কেজি) এবং ভাগ করা লাইব্রেরি ব্যবহার না করব?

সাধারণ বিকাশকারীরা সম্ভবত জিসিসিটি সাধারণ উপায়ে ইনস্টল করতে চান, আপনার প্যাকেজ ম্যানেজারটি ব্যবহার করতে পারেন (yum, rpm, apt, dpkg, port, brew, ইত্যাদি) বা এখানে নির্দেশাবলী অনুসরণ করুন ( http://gcc.gnu.org/wiki/ ইনস্টলিং জিসিসি )।

আমার প্রশ্নটি কীভাবে ভাগ করা লাইব্রেরি ছাড়াই টুকরো টুকরো করে জিসিসি ইনস্টল করবেন।

  • আমি একটি সম্পূর্ণ স্বাধীন জিসিসি চাই যা কোনও সিস্টেমের সাথে ভাগ করে নেওয়া লাইব্রেরি ব্যবহার না করে এবং কোনও ভাগ করা লাইব্রেরি তৈরি না করেই আমার সিস্টেমের চারপাশে স্থানান্তরিত হতে পারে।
  • এটি হ'ল জিসিসি "কঠিন উপায়ে" এবং এটি সাধারণ ব্যবহারকারীদের জন্য প্রস্তাবিত নয়।

জিসিসি নির্ভর করে:

  • জিএমপি: জিএনইউ একাধিক যথার্থ গণিত গ্রন্থাগার
  • এমপিএফআর: জিএনইউ একাধিক-নির্ভুলতা ভাসমান-পয়েন্ট গোলাকার লাইব্রেরি
  • এমপিসি: জিএনইউ একাধিক-নির্ভুলতা সি লাইব্রেরি
  • ইএলএফ: এক্সিকিউটেবল এবং লিংকযোগ্য ফর্ম্যাট লাইব্রেরি
  • পিপিএল: পারমা পলিহেড্রা গ্রন্থাগার (optionচ্ছিক, মেমরি অপ্টিমাইজেশনের জন্য)

উত্তর:


123

সহজ উপায়

আপনি যদি একটি সাধারণ বিকাশকারী হন তবে আপনি http://gcc.gnu.org/wiki/InstallingGCC বা আপনার সিস্টেম প্যাকেজ ম্যানেজার যেমন:

apt  install gcc  # for Debian, Ubuntu, etc.
yum  install gcc  # for RedHat, CentOS, etc.
brew install gcc  # for Mac OS X

কঠিন পথে

জিসিসি বলছে যে এখানে উত্তরটি "হার্ড ওয়ে" কারণ এটি প্রতিটি কিছু টুকরো টুকরো করে তোলে এবং শেয়ার্ড লাইব্রেরি ব্যবহার করে না।

জিসিসির অবকাঠামো

জিসিসির পরিকাঠামো পান:

ftp://gcc.gnu.org/pub/gcc/infrastructure/

কোনও অস্থায়ী ডিরেক্টরিতে ডাউনলোডগুলি রাখুন (আপনি যে ডিরেক্টরিটি চান তা ব্যবহার করতে পারেন)।

/opt/downloads

একটি অস্থায়ী ডিরেক্টরিতে পরিকাঠামো তৈরি করুন যা ডাউনলোড ডিরেক্টরি বা এর উপ-ডিরেক্টরিগুলির চেয়ে পৃথক:

/tmp/gcc

স্ট্যাটিক লাইব্রেরিগুলি এর মতো ব্যবহার করে অবকাঠামোটি কনফিগার করুন:

./configure --disable-shared --enable-static --prefix=/tmp/gcc

- অক্ষমযুক্ত-ভাগ করা পতাকা আপনার প্রয়োজনের উপর নির্ভর করে আরও ঘনিষ্ঠ বর্ণনাকারী হতে পারে। আমি - অক্ষম-ভাগযুক্ত ব্যবহার করি কারণ আমি কেবল স্থিতিশীল কোড তৈরি করছি এবং আমি নিশ্চিত করতে চাই যে আমি কোনও ভাগ করা কোড তৈরি করি না। আমার প্রয়োজনটি হ'ল ফলশ্রুতিযুক্ত জিসিসিটি আমার ড্রাইভগুলির চারপাশে সহজেই স্থানান্তরিত করা উচিত, তাই আমি সমস্ত স্থিতিশীল কোড চাই এবং আমি কোনও ভাগ করা কোড চাই না। আপনি যদি ভাগ করা কোড পছন্দ করেন তবে - অক্ষম-ভাগ করা পতাকা বাদ দিন।

সংস্করণ

আপনি যখন এই উত্তরের যে কোনও কমান্ড চালাচ্ছেন, আপনার বর্তমানের জিসিসি সংস্করণ নম্বরটি ব্যবহার করার জন্য আদেশগুলি আপডেট করতে ভুলবেন না। এই উত্তরের আদেশগুলি জিসিসি 4.6.2 এর জন্য।

নোট করুন যে জিসিসি ডকুমেন্টেশন বলেছে: "প্রয়োজনীয় সরঞ্জামগুলির যথেষ্ট নতুন সংস্করণ সাধারণত কাজ করে তবে গ্রন্থাগারের প্রয়োজনীয়তা সাধারণত কঠোর হয় some

GMP

জিএমপি হ'ল জিএনইউ মাল্টিপল প্রিসিশন অ্যারিমেটিক লাইব্রেরি।

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
bunzip2 gmp-4.3.2.tar.bz2
tar xvf gmp-4.3.2.tar
cd gmp-4.3.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install

MPFR

এমপিএফআর হ'ল জিএনইউ মাল্টিপল-স্পষ্টিকেশন ফ্লোটিং পয়েন্ট রাউন্ডিং লাইব্রেরি। এটি GMP এর উপর নির্ভর করে।

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
bunzip2 mpfr-2.4.2.tar.bz2
tar xvf mpfr-2.4.2.tar
cd mpfr-2.4.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc
make && make check && make install

এমপিসি

এমপিসি হ'ল জিএনইউ মাল্টিপল-প্রিসিশন সি লাইব্রেরি। এটি GMP এবং MPFR এর উপর নির্ভর করে।

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar zxvf mpc-0.8.1.tar.gz
cd mpc-0.8.1
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc --with-mpfr=/tmp/gcc
make && make check && make install

ELF

ELF এর অর্থ এক্সিকিউটেবল এবং লিংকযোগ্য ফর্ম্যাট। এই গ্রন্থাগারটি আর্কিটেকচার-স্বতন্ত্র আকার এবং এন্ডিয়ান সহায়তা সরবরাহ করে।

wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
tar zxvf libelf-0.8.13.tar.gz
cd libelf-0.8.13
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install

জিসিসি

জিসিসি হ'ল জিএনইউ সংকলক সংগ্রহ। এটি GMP, MPFR, MPC, এবং ELF এর উপর নির্ভর করে।

wget http://www.netgull.com/gcc/releases/gcc-4.6.2/gcc-4.6.2.tar.gz
tar zxvf gcc-4.6.2.tar.gz

একই মাউন্ট পয়েন্টে স্ক্র্যাচ ডিরেক্টরিতে জিসিসি তৈরি করুন। (এটি / টেম্পির মধ্যে তৈরি করা ক্রস সংকলন হোস্ট সমস্যাগুলি ট্রিগার করবে)

mkdir -p /opt/downloads/gcc-4.6.2-scratch
cd /opt/downloads/gcc-4.6.2-scratch

কনফিগার কমান্ড এবং এর পতাকাগুলি অবশ্যই একটি কমান্ড লাইনে থাকতে হবে (এই পোস্টটি কেবল ওয়েব পৃষ্ঠার প্রস্থের কারণে পৃথক লাইনে তাদের দেখায়)।

দ্রষ্টব্য: আমরা লাইব্রেরির পাথের পরিবেশের ভেরিয়েবলগুলি কনফিগার করতে এবং সেট করে নেই তার জন্য পুরো পথটি ব্যবহার করি। আমরা বুটস্ট্র্যাপ অক্ষম করতে এবং ভাগ করে নেওয়া লাইব্রেরিগুলি অক্ষম করার জন্য বেছে নিই কারণ আমরা সেগুলি চাই না (সাধারণ ব্যবহারকারীরা উভয়ই চাইতে পারে), এবং পোস্টিক্স থ্রেড এবং পতাকাগুলি ডিফল্ট হিসাবে ব্যবহার করতে পারেন কারণ আমরা তাদের চাই (সাধারণ ব্যবহারকারীরা অন্য থ্রেড ব্যবহার করতে বা এড়িয়ে যেতে চান) ডিফল্ট পতাকা)। ওয়াইএমএমভি এবং পতাকাগুলি এখানে পড়ুন

/opt/downloads/gcc-4.6.2/configure
  --disable-shared
  --disable-bootstrap
  --disable-libstdcxx-pch
  --enable-languages=all
  --enable-libgomp
  --enable-lto
  --enable-threads=posix
  --enable-tls
  --with-gmp=/tmp/gcc
  --with-mpfr=/tmp/gcc
  --with-mpc=/tmp/gcc
  --with-libelf=/tmp/gcc
  --with-fpmath=sse
make && make install

এই পৃষ্ঠাটি জিসিসি ইনস্টলেশন তথ্য, এটি কীভাবে তৈরি করা যায়, বিভিন্ন পতাকা এবং আরও অনেক কিছুর জন্য দুর্দান্ত:

http://www.acsu.buffalo.edu/~charngda/cc_build.html

আপডেট

পিপিএল লাইব্রেরিগুলি মেমরি অপ্টিমাইজেশনের জন্য ব্যবহার করা যেতে পারে: দেখুন বাগেসেং / প্রোডাক্টস / পিপিএল / ডাউনলোড (মন্তব্যগুলিতে পলকে ধন্যবাদ)

আপনি gcc উত্স ডিরেক্টরি থেকে ./contrib/download_prerequisites চালাতে পারেন। (Reddit নেভিগেশন N7P ধন্যবাদ)


2
এফওয়াইআই নতুন জিসিসি ৪.6.৩ (অথবা আপনি যখন এটি করছেন তখন যা কিছু বর্তমান রয়েছে) এর জন্য উপরের সংস্করণ নম্বরগুলি আপডেট করার বিষয়ে নিশ্চিত হন
joelparkerhenderson

12
আপনি gcc উত্স ডিরেক্টরি থেকে। এই মন্তব্যটি রেডডিতে এন 7 পিকে ধন্যবাদ।
joelparkerhenderson

3
না, বুটস্ট্র্যাপিং এর উপর নির্ভর করে না। জিএমপি, এমপিএফআর এবং এমপিসি তৈরি করার জন্য - অক্ষম-ভাগ করে নেওয়ার বিষয়টি বোধগম্য হয়েছে তবে এটি নিজে জিসিসির জন্য নয় (এবং ডাউনলোড_প্রিরিয়সিটিস স্ক্রিপ্টটি ব্যবহার করার অর্থ আপনাকে যেকোনোভাবে GMP, MPFR এবং MPC তৈরি করার দরকার নেই)। বিল্ডিং জিসিসি সর্বদা ডিফল্টরূপে স্থিতিশীল libs এবং ভাগ করা libs তৈরি করে - - অক্ষম-ভাগ করে নেওয়া মানে আপনি কোনও ভাগ করা libs পাবেন না, যা বেশিরভাগ মানুষের পক্ষে ভুল পছন্দ।
জোনাথন ওয়াকলি

8
--disable-sharedবেশিরভাগ মানুষের পক্ষে ভুল, --disable-bootstrapবিল্ডটি গতি বাড়িয়ে দিতে পারে, তবে এটি বিদ্যমান জিসিসি সংস্করণের উপর নির্ভর করে ব্যর্থ হতে পারে, যে --enable-libgompকোনও উপায়ে ডিফল্টরূপে --enable-ltoসক্ষম করা হয়েছে, --enable-thread-safeকোনও বৈধ বিকল্প নয়, --enable-threads=posixকিছু প্ল্যাটফর্মে ডিফল্টরূপে সক্ষম হয়েছে, অন্যের পক্ষে বৈধ নয় , --enable-tlsডিফল্টভাবে সক্রিয় ... মূলত এই নির্দেশাবলী চমত্কার দরিদ্র
জনাথন Wakely

1
আপনি নিজের হোম ডিরেক্টরিতে জিসিসি (এবং বিকল্পভাবে গ্লিবসি) ইনস্টল করতে লিনাক্সব্রু ব্যবহার করতে পারেন brew install gccলিনাক্সব্রব.শ
শন জ্যাকম্যান

118

গৃহীত উত্তর এটা তোলে পর্যন্ত আরো প্রয়োজনীয় তুলনায় জটিল এবং সব সংস্করণের জন্য সঠিক নয়। জিসিসি দিয়ে বিল্ডিং --disable-sharedকরা সাধারণত খুব খারাপ ধারণা। আরও সহজ পদ্ধতির জন্য http://gcc.gnu.org/wiki/InstallingGCC দেখুন ।

সমগ্র প্রক্রিয়া এই (সংস্করণ আপনি বিল্ড করতে চান 4.6.2 প্রতিস্থাপন) বেশী কঠিন হওয়া উচিত:

tar xzf gcc-4.6.2.tar.gz
cd gcc-4.6.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.6.2/configure --prefix=$HOME/GCC-4.6.2 
make
make install

(তবে দয়া করে উপরের লিঙ্কটি পড়ুন, এতে দরকারী তথ্য রয়েছে))

স্পষ্টতই উবুন্টুতে কিছু লোকের পরিবেশের মধ্যে প্রচুর ক্রেপ সেট রয়েছে যা জিসি বিল্ড প্রক্রিয়াতে হস্তক্ষেপ করে এবং তাদের প্রথমে এটি অপসারণ করতে হবে:

unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE LD_LIBRARY_PATH

2
না, কোনও অনুপস্থিত পদক্ষেপ নেই
জোনাথন ওয়েকেলি

2
@ ব্যবহারকারী ২০২৩৩70০, জিসিসি অবশ্যই নিজের সমস্ত শিরোনাম এবং লাইব্রেরি কীভাবে সন্ধান করতে পারে তা জানে। লাইব্রেরিগুলি কীভাবে সন্ধান করতে হয় ডায়নামিক লিঙ্কারকে আপনাকে বলতে LD_LIBRARY_PATH সেট করতে হবে (কারণ আপনি যখন এক্সিকিউটেবল জিসিসি চালাবেন না তখন), gcc.gnu.org/onlinesocs/libstdc++/faq.html#faq.how_to_set_paths দেখুন
জোনাথন

2
@ আইনপোকলুম, তারপরে আপনার "এই জাতীয় কিছু" একই ছিল না। উপরের পদক্ষেপগুলি কাজ করে। তারা জিসিসির সমস্ত সংস্করণ সহ আমার জন্য নিয়মিত কাজ করে। তারা শত শত মানুষের জন্য কাজ করে।
জোনাথন Wakely

3
ভবিষ্যতের রেফারেন্সের জন্য, এটি gcc-5.4.0 এর জন্য আমার পক্ষে কাজ করেছে। শুধুমাত্র জিনিস না উল্লেখ করেন যে, আমি ছিল unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE LD_LIBRARY_PATH: এখানে সুপারিশ অন্য আগে সবকিছু stackoverflow.com/questions/12255058/...
Cantfindname

4
এটি আমার পক্ষে জিসিসি .2.২.০ নিয়ে কাজ করেছিল এবং অবশ্যই এটির উত্তর হওয়া উচিত! (এটি অপারেটিং সিস্টেম / সংস্করণ ইত্যাদি জুড়ে কাজ করে)
ডেভিড ডরিয়া

25

আমি একটি গুচ্ছ উপর কাজ। কেবলমাত্র মাস্টার নোডই ইন্টারনেটে সংযুক্ত। নোডগুলিতে থাকা সফ্টওয়্যারটি পুরানো এবং সাধারণত রক্ষণাবেক্ষণ করা হয় না। আমার রুট অ্যাক্সেস নেই। আমার দুটি বিকল্প রয়েছে:

  • আমার প্রয়োজন স্ট্যাটিক সফ্টওয়্যার তৈরি করুন (গণনা প্যাকেজ); অথবা
  • স্থির সংকলক নির্মাণ করুন।

আমি দ্বিতীয় এবং নির্মিত জিসিসি, জি ++ এবং গফর্ট্রান বেছে নিয়েছি।

আমি সবকিছু নির্মিত

PREFIX=$HOME/cmp/soft/sft

এবং makeআমি ব্যবহার করেছি

THREADS=8

নীচে, জিসিসি দিয়ে নির্মিত হয়েছে

  • GMP
  • MPFR
  • এমপিসি
  • আইএসএল
  • CLOOG

যে কেউ এখান থেকে সর্বশেষতম জিসিসি পেতে পারেন: ftp://gcc.gnu.org/pub/gcc/releases

নির্ভরতা এখানে পাওয়া যায়: ftp://gcc.gnu.org/pub/gcc/inf पाया

নির্ভরতা

আমি নিম্নলিখিত স্ক্রিপ্টের সাথে নির্ভরতা পেয়েছি:

#!/bin/sh

# ===========
## variables:

GMP=gmp-4.3.2.tar.bz2
MPFR=mpfr-2.4.2.tar.bz2
MPC=mpc-0.8.1.tar.gz
ISL=isl-0.12.2.tar.bz2
CLOOG=cloog-0.18.1.tar.gz

MIRROR=ftp://gcc.gnu.org/pub/gcc/infrastructure


# ===========
## functions:

extract() {
    if [ -f $1 ]; then
        case $1 in
            *.tar.bz2)   tar xvjf $1    ;;
            *.tar.gz)    tar xvzf $1    ;;
            *.bz2)       bunzip2 $1     ;;
            *.rar)       unrar x $1     ;;
            *.gz)        gunzip $1      ;;
            *.tar)       tar xvf $1     ;;
            *.tbz2)      tar xvjf $1    ;;
            *.tgz)       tar xvzf $1    ;;
            *.zip)       unzip $1       ;;
            *.Z)         uncompress $1  ;;
            *.7z)        7z x $1        ;;
            *)           echo "I don't know how to extract '$1'..." ;;
        esac
    else
        echo "'$1' is not a valid file!"
    fi
}

# ======================
## download and extract:

wget $MIRROR/$GMP
extract $GMP

wget $MIRROR/$MPFR
extract $MPFR

wget $MIRROR/$MPC
extract $MPC

wget $MIRROR/$ISL
extract $ISL

wget $MIRROR/$CLOOG
extract $CLOOG

নিম্নলিখিত বাশ ফাংশনটি নীচে ব্যবহৃত হয়েছে:

mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }

নীচের প্রতিটি কমান্ড সবেমাত্র ডাউনলোড করা লাইব এর dir জারি করা হবে।

GMP

mkdircd build
../configure --disable-shared --enable-static --prefix=$PREFIX/gmp
make -j $THREADS && make check && make install

MPFR

mkdircd build
../configure --with-gmp=$PREFIX/gmp --disable-shared --enable-static --prefix=$PREFIX/mpfr
make -j $THREADS && make install

এমপিসি

mkdircd build
../configure --with-gmp=$PREFIX/gmp --with-mpfr=$PREFIX/mpfr --disable-shared --enable-static --prefix=$PREFIX/mpc
make -j $THREADS && make install

আইএসএল

mkdircd build
../configure --with-gmp-prefix=$PREFIX/gmp --disable-shared --enable-static --prefix=$PREFIX/isl
make -j $THREADS && make install

CLOOG

mkdircd build
../configure --with-gmp-prefix=$PREFIX/gmp --with-isl-prefix=$PREFIX/isl --disable-shared --enable-static --prefix=$PREFIX/cloog
make -j $THREADS && make install

জিসিসি

mkdircd build
export LD_LIBRARY_PATH=$PREFIX/gmp/lib:$PREFIX/mpfr/lib:$PREFIX/mpc/lib:$PREFIX/isl/lib:$PREFIX/cloog/lib
export C_INCLUDE_PATH=$PREFIX/gmp/include:$PREFIX/mpfr/include:$PREFIX/mpc/include:$PREFIX/isl/include:$PREFIX/cloog/include
export CPLUS_INCLUDE_PATH=$PREFIX/gmp/include:$PREFIX/mpfr/include:$PREFIX/mpc/include:$PREFIX/isl/include:$PREFIX/cloog/include
../configure --with-gmp=$PREFIX/gmp --with-mpfr=$PREFIX/mpfr --with-mpc=$PREFIX/mpc --with-isl=$PREFIX/isl --with-cloog=$PREFIX/cloog --disable-shared --enable-static --disable-multilib --prefix=$PREFIX/gcc --enable-languages=c,c++,fortran
make -j $THREADS bootstrap && make install

1
এটি অহেতুক জটিল, আমার উত্তরের পদক্ষেপগুলিও অ্যাক্সেস ছাড়াই একটি স্ট্যাটিকাল-লিঙ্কযুক্ত জিসিসি তৈরি LD_LIBRARY_PATHকরে এবং ফলস্বরূপ আপনার জিসিসি ব্যবহারের জন্য সেট করার দরকার নেই ।
জোনাথন ওয়াকলি

এটি এমন পরিস্থিতিতেও কাজ করে যেখানে "ভালভাবে সংজ্ঞায়িত" পাথগুলিতে ইনস্টল করা যেকোন কিছু নিয়ে দ্বন্দ্ব রয়েছে (উদাহরণস্বরূপ, স্ট্যান্ডার্ড পদ্ধতি কার্যকরভাবে কাজ করতে ব্যর্থ হয় এমন ক্ষেত্রে)। 2017-06-19 হিসাবে সর্বশেষ সংস্করণ: gmp-6.1.2 mpfr-3.1.5 mpc-1.0.3 isl-0.16.1 Cloog-0.18.4 gcc-7.1.0
মাইকেল গোল্ডশটেন

7

উপরের জোনাথন যা উল্লিখিত হয়েছে তা ব্যবহার করে ব্যতীত আমাকে নিজেই জিএমপি এবং এমপিএফআর ডাউনলোড করতে হয়েছিল এবং নরম লিঙ্ক তৈরি করতে হয়েছিল (জিসিসি ৪.৪.২ বিতরণ সম্ভবত "ডাউনলোড_প্রিয়রোকুইটিস" নেই)

cd src/gcc-4.4.2
ln -s ~/linux64/gmp-4.2.1  gmp
ln -s ~/linux64/mpfr-2.3.0 mpfr

বিটিডাব্লু, "-উথ-জিএমপি" এবং "উইথ এমপিএফআর" সহ "./configure" আমাকে দিয়েছে "কনফিগার: ত্রুটি: অবজেক্ট ফাইলগুলির প্রত্যয়কে গুণতে পারে না: সংকলন করতে পারে না"। অতএব আমি gmp এবং mpfr এর srcs ডাউনলোড করেছি এবং তারপরে এটির সাথে নরম লিঙ্কটি তৈরি করেছি gcc src শীর্ষ লিভ dir এর মধ্যে থেকে


2

জিএমপি, এমপিএফআর এবং এমপিসি সহ জিসিসি নির্ভরতা ইনস্টল করার চেষ্টা করার পরে আমি অতিরিক্ত ইনস্টল প্রয়োজনীয়তা, ত্রুটি এবং ফাইল হারিয়েছে; যেমন gmp.h হেডার ফাইলটি ইনস্টল করতে এমপিএফআর দ্বারা প্রয়োজনীয়। প্রক্রিয়াটিতে আপনি যে কয়েকটি সমস্যা সমাধান করবেন সেগুলি ছেড়ে দেওয়া হচ্ছে। তবে, স্বয়ংক্রিয় লিঙ্কের সাথে জিসিসি-এক্স.0.0 বা পরবর্তী সংস্করণ তৈরি ও ইনস্টল করার একটি সহজ উপায় রয়েছে ।

বিকল্প এক।

মেক দিয়ে বিল্ডিংয়ের ঝামেলা বাঁচাতে, গতিশীল লাইব্রেরিগুলি ইনস্টল করুন এবং লিঙ্ক করুন, সহজভাবে:

  • আপনার জিসিসি-এক্স.0.0 রূপান্তরটি ডাউনলোড করুন (সর্বশেষ সংস্করণ সহ: https://gcc.gnu.org/ )

  • Gcc-X-000.tar.gz ফাইলগুলি কোনও স্থানে / সামোথপাথ / এ বের করুন।

  • একবার আপনি বের করা .tar.gz ফাইল আছে, রান ./contrib/download_prerequisites স্ক্রিপ্ট / somepath / অথবা সোর্স ডিরেক্টরিতে অবস্থিত।

  • এই স্ক্রিপ্টটি সমর্থন সহ লাইব্রেরি ডাউনলোড করবে: GMP, MPFR এবং এমপিসি এবং একটি তৈরি করবে Symlinks তোমার জন্য, যে হবে গড়ে তুলুন সব জিসিসি নির্ভরতা স্বয়ংক্রিয়ভাবে জিসিসি ইনস্টলেশন প্রক্রিয়ার অংশ হিসেবে।

    মেক, মেক ইনস্টল বা চলমান ./configure ফাইল জারি করে বা --with-gmp = / gmp_path / ... / ..... এর মতো লিঙ্ক যুক্ত করে / সमপথ / এ ডাউনলোড করা লাইব্রেরিগুলি বিল্ড ও লিঙ্ক করার দরকার নেই ..... , --উথ-এমপিএফআর = / এমপিএফআর_পাথ / ... / ... কারণ আপনি যখন স্ক্রিপ্টটি সিমলিংক তৈরি করেছিলেন তখন এটি করা হয়েছিল ।

বিকল্প দুটি।

  • স্ট্যান্ডার্ড সিস্টেমের অবস্থানটিতে সমর্থন লাইব্রেরিগুলি ইনস্টল করতে আপনার ওএস প্যাকেজ পরিচালনা সিস্টেমটি ব্যবহার করুন। উবুন্টু সহ ডিবিয়ান ভিত্তিক সিস্টেমের জন্য, libgmp-dev, libmpfr-dev এবং libmpc-dev প্যাকেজ ইনস্টল করুন। ফেডোরা এবং সুস সহ আরপিএম ভিত্তিক সিস্টেমের জন্য , জিএমপি-ডেভেল ইনস্টল করুন এবং libmpc-devel ( SUSE- তে mpc-devel ) প্যাকেজ ইনস্টল করুন।
  • এই বিকল্পটি একটি স্ট্যান্ডার্ড সিস্টেম ডিরেক্টরিতে লাইব্রেরি এবং শিরোলেখ ফাইলগুলি ইনস্টল করবে যেখানে তারা জিসিসি নির্মাণের সময় স্বয়ংক্রিয়ভাবে পাওয়া যাবে।
  • ওএস প্যাকেজ ইনস্টলেশন পরিচালনার সুবিধা এটি যখন আপনি "sudo apt-get ইনস্টল libgmp-dev" বা "sudo apt-get ইনস্টল libmpfr-dev" ইনস্টল এবং লিঙ্কিং আপনার জন্য করা হয়। এছাড়াও, আপনাকে মেক, মেক ইনস্টল বা। / কনফিগার দিয়ে সাপোর্ট লাইব্রেরি তৈরি করতে হবে না এছাড়াও, সমস্ত প্রক্রিয়াটি শেষ করতে প্রক্রিয়াটি কয়েক মিনিট সময় নেয়।
  • এখন আপনি জিসিসি ইনস্টলেশন নিয়ে এগিয়ে যেতে পারেন।

কনফিগারেশন:

This is the GCC config Process, with gcc-X-000.tar.gz 

সমস্যা:

tar -xvf gcc-X-000.tar.gz 
cd gcc-X-000
./contrib/download_prerequisites
cd ..
mkdir objdir
/../gcc-X-000/configure --prefix=$HOME/gcc-X-000 --enable-languages=c,c++,fortran,go --disable-multilib
make -j 2
make install

বিশেষ দ্রষ্টব্য:

- সক্ষম-ভাষা যেমন সি ++ বা সি।

- ডিজেবল-মাল্টিলেব ; আপনার সিস্টেম এবং ওএসের ভিত্তিতে মাল্টিলিবটি অক্ষম করুন, আপনাকে মাল্টিলেব সম্পর্কে প্রম্পট করা হবে।

মেকটি সম্পূর্ণ হতে দীর্ঘ সময় লাগবে। তবে, আপনি -j # না_pro অপশনটি জারি করতে পারেন। এটি আপনার পিসি বা ম্যাকের প্রসেসরের সংখ্যার ভিত্তিতে সমান্তরালভাবে মেকটি চলবে run

এই প্রক্রিয়াটি কীভাবে কার্যকর করা যায় তার বিশদ তথ্যের জন্য আপনি দেখতে পারেন: https://gcc.gnu.org/wiki/InstallingGCC


1

আমি joelparkerhenderson দ্বারা শীর্ষ গৃহীত উত্তর অনুসরণ। ইন্টারনেটে * এনআইএক্স সিস্টেমে ইনস্টল করার জন্য এটি আমি সেরা উত্তরটি পেয়েছি।

উত্তরসূরিদের জন্য আমি যুক্ত করতে চাই যে আপনি যদি "ত্রুটি ইনস্টল করুন: অবজেক্ট ফাইলগুলির প্রত্যয় গণনা করতে পারবেন না: সংকলন করতে পারবেন না"

তারপরে / টিএমপি / জিসিসি / লিবের সাথে আপনার এলডি_লিবিআরবিআরএপিএটিএইচ আপডেট করুন (প্রসঙ্গের জন্য joelparkerhenderson এর সম্পূর্ণ উত্তর দেখুন)

/ টিএমপি / জিসিসি / লিবিতে সমস্ত প্রয়োজনীয় এমপিএফআর / এমপিসি / জিএমপি রয়েছে যাতে আপনি এলডি_লিবারি_প্যাথটিতে যোগ না করে ফাইল এবং রান টাইম লিঙ্কার তাদের সন্ধান করতে পারে না। এছাড়াও LD_LIBRARY_PATH রফতানি করতে ভুলবেন না;)। এখানে আরও প্রসঙ্গ: https://gcc.gnu.org/wiki/FAQ#configure_suffix


কেবলমাত্র সংকলকটি ব্যবহার করার জন্য আপনার LD_LIBRARY_PATH আপডেট করা বোবা update আপনি যদি তার পরিবর্তে স্ট্যাকওভারফ্লো.com/a/10662297/981959 ব্যবহার করেন তবে এটি প্রয়োজনীয় নয়।
জোনাথন ওয়াকলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.