Saat ini saya menjalankan Ubuntu 16.04
dan ingin menginstal gcc-5.3
dari sumber, tanpa mengganggugcc-5.4
dan gcc-4.9
yang telah saya instal menggunakan pengelola paket Synaptic.
Alasan saya ingin gcc-5.3
apakah saya menggunakan CUDA 8.0 RC
, yang tidak mendukung versi gcc setelah 5.3
. Daripada menurunkan versi ke 4.9
, saya ingin menginstal (atau setidaknya tahu cara menginstal) 5.3
. Saya sudah memiliki kode untuk gcc-5.3
dan hanya perlu melalui configure/make/make install
ritual.
Sekarang, saya perlu memahami berbagai opsi konfigurasi sebelum menjalankan make dan make install. Saya terutama ingin memastikan bahwa saya menginstal gcc-5.3
di tempat yang tepat dan tidak mengganggu gcc-5.4
saya yang sudah ada dan gcc-4.9
.
Saya menemukan satu akun tentang cara mengonfigurasi 5.3
, yaitu sebagai berikut:
./gcc-5.3.0/configure --disable-checking --program-suffix=-5.3 --enable-languages=c,c++,go,objc --disable-multilib --with-system-zlib prefix=/usr/local/gcc-5.3
Beberapa opsi ini masuk akal, yang lain tidak. Secara khusus, opsi yang menurut saya cukup saya pahami untuk tidak mengacaukan diri adalah:
--disable-checking: Will make the installation quicker, but at the risk
of missing errors. Since I'm paranoid, I'll probably
omit this option.
--disable-multilib: I don't understand this. I gather it has something
to do with variations on the compiler's target machine,
but that's all I can gather.
At worst, if I omit this option, I think I'll just
end up with some extra libraries, which doesn't seem
so bad. Why do/don't I want to use this?
--with-system-zlib: Use the zlib that I already have with my system,
rather than gcc's version. This seems reasonable to
me.
--enable-languages=c,c++,go,objc: AFAIK, I'm really just interested in c & c++,
so this option seems pretty harmless, although I might
just use --enable-lnguages=all, since it can't hurt.
Opsi yang membuat saya khawatir adalah:
--program-suffix=-5.3: This seems just to add a -5.3 suffix
at the end of the installation path,
which is probably a good idea if I get the
path right
prefix=/usr/local/gcc-5.3: This just seems to specify the
installation directory and to make the
--program-suffix=-5.3 specification
redundant. However, it is the option that
makes me the most uneasy.
Ketika saya melakukan find . -name gcc
, satu-satunya jalur relevan yang saya lihat adalah /usr/lib/gcc
dan /usr/bin/gcc
Di /usr/lib/gcc
, ada dua sub-direktori – i686-linux-gnu
dan x86_64-linux-gnu
, karena saya memiliki mesin 64-bit, saya mencari di direktori x64.
Di sana, saya melihat tautan lunak – 4.9.3
, yang ditautkan ke direktori bernama 4.9
, yang memiliki file untuk gcc-4.9
. Demikian pula, saya melihat softlink bernama 5.4.0
yang ditautkan ke direktori bernama 5
, yang memiliki file untuk gcc-5.4
. Jadi, saya berharap saya ingin menggunakan prefix=/usr/lib/gcc/5.3
dan tidak menggunakan --program-suffix
pilihan. Apakah ini benar?
Pada titik ini, saya hanya berasumsi bahwa ketika saya menjalankan make &make install bahwa .a
&.so
file akan ditempatkan di /usr/lib/gcc/5.3
dan bahwa executable akan berakhir sebagai /usr/bin/gcc-5.3
dan bahwa saya akan dapat menggunakan pembaruan-alternatif Ubuntu untuk berpindah di antara gcc-5.4
, gcc-5.3
dan gcc-4.9
(Catatan:alasan saya tidak menggunakan Synaptic adalah karena Synaptic hanya menyediakan gcc-5.4, yang disebut gcc-5. Demikian pula, ppa ppa:ubuntu-toolchain-r/test
merujuk ke semua versi gcc-5.X sebagai gcc-5, yang juga tampaknya berbahaya untuk digunakan. Saya menduga keputusan untuk merujuk ke semua versi minor gcc-5.x karena gcc-5 adalah akar masalah saya)
Jawaban yang Diterima:
Anda tidak perlu menginstal gcc=5.3 dari sumber dalam kasus itu. Anda dapat menggunakan lingkungan conda (instal Miniconda atau Anaconda) dan instal gcc_linux-64=5.3.