Можно ли использовать другую версию g cc в среде Conda? - PullRequest
1 голос
/ 30 мая 2020

Мне нужно установить пакет ( сэмплер пространственной корреляции ), который требует gcc: >=5.3. В моей системе (Linux, удаленный сервер) версия g cc - 4.8.5, и виртуальная среда Conda использует ту же версию. Можно ли использовать другую версию в виртуальной среде?

1 Ответ

1 голос
/ 30 мая 2020

Можно ли использовать другую версию 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 из ее исходного кода в вашей системе. Установленный 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).

...