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.