Я в настоящее время работаю Ubuntu 16.04
и хочу установить gcc-5.3
из источника, не разрушаяgcc-5.4
и gcc-4.9
то, что я уже установил использующий Синаптический диспетчер пакетов.
Причина я хочу gcc-5.3
я, использую CUDA 8.0 RC
, который не поддерживает gcc версии после 5.3
. Вместо того, чтобы понижать до 4.9
, Я хотел бы установить (или по крайней мере знать, как установить), 5.3
. У меня уже есть код для gcc-5.3
и только потребность пройти configure/make/make install
ритуал.
Теперь, я должен понять, что различные настраивают опции, прежде чем выполнение сделает и сделает установку. Я особенно хочу быть уверенным, что я устанавливаю gcc-5.3
в правильном месте и не вмешиваются в мое существующее gcc-5.4
и gcc-4.9
.
Я нашел одну учетную запись того, как настроить 5.3
, это было следующие:
./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
Некоторые из этих опций имеют смысл, другие не делают. А именно, опции, я думаю, что понимаю достаточно хорошо, чтобы не испортить меня:
--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.
Опции, которые действительно волнуют меня:
--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.
Когда я делаю a find . -name gcc
, единственные соответствующие тракты, которые я вижу, /usr/lib/gcc
и /usr/bin/gcc
В /usr/lib/gcc
, существует два подкаталога - i686-linux-gnu
и x86_64-linux-gnu
, так как у меня есть 64-разрядная машина, я смотрел в x64 каталоге.
Там, я видел гибкую ссылку - 4.9.3
, связанный с названным каталогом 4.9
, это имело файлы для gcc-4.9
. Точно так же я видел названный softlink 5.4.0
связанный с названным каталогом 5
, это имело файлы для gcc-5.4
. Так, я ожидаю, что хочу использовать prefix=/usr/lib/gcc/5.3
и не используют --program-suffix
опция. Это корректно?
На данном этапе я просто предполагаю, что, когда я работаю, делают и делают установку что .a
& .so
файлы будут помещены в /usr/lib/gcc/5.3
и что исполняемый файл закончится как /usr/bin/gcc-5.3
и это я смогу использовать альтернативы обновления Ubuntu для перемещения среди gcc-5.4
, gcc-5.3
и gcc-4.9
(Примечание: причина, которую я не использую Синаптический, состоит в том, что это только обеспечивает gcc-5.4, который это называет gcc-5. Точно так же ppa ppa:ubuntu-toolchain-r/test
относится ко всем версиям gcc-5. X как gcc-5, который также кажется опасным для использования. Я подозреваю решение относиться ко всем вспомогательным версиям gcc-5.x, поскольку gcc-5 является корнем моих проблем),
Подход, который я в конечном итоге использовал, - это варианты обновления
Ubuntu. См. Эту ссылку:
Вы не должны устанавливать gcc=5.3 из источника в этом случае. Можно использовать conda среду (установите Miniconda или Anaconda), и установите gcc_linux-64=5.3.