Momentálně používám Ubuntu 16.04 a chcete nainstalovat gcc-5.3 ze zdroje, aniž by došlo k narušení gcc-5.4 a gcc-4.9 který jsem již nainstaloval pomocí správce balíčků Synaptic.
Důvod, proč chci gcc-5.3 používám CUDA 8.0 RC , který nepodporuje verze gcc po 5.3 . Spíše než downgrade na 4.9 , chtěl bych nainstalovat (nebo alespoň vědět, jak nainstalovat) 5.3 . Již mám kód pro gcc-5.3 a stačí projít configure/make/make install rituál.
Nyní musím porozumět různým možnostem konfigurace před spuštěním make a make install. Zejména chci mít jistotu, že nainstaluji gcc-5.3 na správném místě a nezasahovat do mého stávajícího gcc-5.4 a gcc-4.9 .
Našel jsem jeden účet, jak nakonfigurovat 5.3 , bylo to takto:
./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
Některé z těchto možností dávají smysl, jiné ne. Konkrétně možnosti, o kterých si myslím, že rozumím dostatečně dobře na to, abych se nepokazil, jsou:
--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.
Možnosti, které mě znepokojují, jsou:
--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.
Když find . -name gcc , jediné relevantní cesty, které vidím, jsou /usr/lib/gcc a /usr/bin/gcc
V /usr/lib/gcc , existují dva podadresáře – i686-linux-gnu a x86_64-linux-gnu , protože mám 64bitový stroj, podíval jsem se do adresáře x64.
Tam jsem viděl soft-link – 4.9.3 , který odkazoval na adresář s názvem 4.9 , který měl soubory pro gcc-4.9 . Podobně jsem viděl softlink s názvem 5.4.0 který je propojen s adresářem s názvem 5 , který měl soubory pro gcc-5.4 . Takže očekávám, že chci použít prefix=/usr/lib/gcc/5.3 a nepoužívejte --program-suffix volba. Je to správné?
V tuto chvíli pouze předpokládám, že když spustím make &make install, že .a &.so soubory budou umístěny do /usr/lib/gcc/5.3 a že spustitelný soubor skončí jako /usr/bin/gcc-5.3 a že budu moci používat alternativy aktualizace Ubuntu k pohybu mezi gcc-5.4 , gcc-5.3 a gcc-4.9
(Poznámka:Důvod, proč nepoužívám Synaptic, je ten, že poskytuje pouze gcc-5.4, kterému říká gcc-5. Podobně ppa ppa:ubuntu-toolchain-r/test označuje všechny verze gcc-5.X jako gcc-5, jehož použití se také zdá nebezpečné. Mám podezření, že kořenem mých problémů je rozhodnutí odkazovat na všechny vedlejší verze gcc-5.x jako gcc-5)
Přijatá odpověď:
V takovém případě nemusíte instalovat gcc=5.3 ze zdroje. Můžete použít prostředí conda (nainstalovat Miniconda nebo Anaconda) a nainstalovat gcc_linux-64=5.3.