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.