Можно ли использовать другую версию g cc в среде Conda?
Вероятно, да, за исключением случаев, когда вам (или вашей среде Conda) требуется или используется G CC плагин . Эти плагины предназначены c для конкретной версии G CC: плагин, закодированный для G CC 4.8 (например, мой старый G CC MELT ), не будет работать с G CC 6. См. Также этот черновой отчет о Bismon (который может стать преемником G CC MELT).
В Linux / x86-64 , код C, скомпилированный с G CC 4.8, будет совместим с тем же кодом, скомпилированным с G CC 10 , поскольку оба следуют одним и тем же ABI и соглашения о вызовах .
Для кода C ++, скомпилированного с G CC, могут быть тонкие несовместимости ABI или соглашений о вызовах (связанные с искажением имен и исключения ).
Также имейте в виду, что Python 2 и Python 3 имеют разные интерфейсы внешних функций . Прочтите главы, связанные с расширением и внедрением интерпретатора Python.
См. Также Практическое руководство по программной библиотеке , Advanced Linux Программирование и C ++ dlopen mini-HowTo и Linux HowTo и конечно Linux С нуля .
В моей системе (Linux, удаленный сервер) версия g cc - 4.8.5
Вам разрешено скомпилировать и установить более свежую версию G CC из ее исходного кода в вашей системе. Установленный G CC 4.8 можно использовать для сборки, например, G CC 8 из его исходного кода (затем устанавливается в /usr/local/bin/gcc
, затем вы просто разумно настраиваете свой $PATH
переменная ). Вы даже можете сделать это с неподдерживаемым G CC 5 .
На недавнем Debian или Ubuntu вы установит зависимости с чем-то вроде sudo aptitude build-dep g++
, и вы также можете использовать Docker. Возможно, вам потребуется загрузить несколько гигабайт.
Некоторые компании или фрилансеры могут (за определенную плату) скомпилировать G CC, адаптированный для вашей системы. Я знаю AdaCore , но есть много других корпораций или фрилансеров, продающих поддержку по G CC. Свяжитесь с мне по электронной почте для получения дополнительной информации.
PS. На мощном настольном компьютере AMD Threadripper 2970WX я только что собрал G CC 10.1 с make -j8
и g++ 9.3
на Debian / Sid за 10: 21,38 прошедшего времени, потребовав менее 7 Гбайт дискового пространства ( как для исходного кода G CC, так и для объектных файлов). Конечно, я отключил компилятор bootstrap. Вы можете сделать то же самое через ssh
в своей системе (это может занять час или два прошедшего времени, потому что Linux VPS имеет меньше ядер, поэтому вам может потребоваться только make -j2
).