The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Компиляция)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Clang vs Gcc: две компиляторных системы в одном дистрибутиве, sidtver (ok), 08-Окт-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


8. "Clang vs Gcc: две компиляторных системы в одном дистрибутиве"  +/
Сообщение от Аноним (8), 08-Окт-20, 19:05 
У меня штук 20 разных компиляторов с разными либами стоит, гента. Можно любой системны пакет собрать произвольным системным компилятором любой версии, binutils правда придётся вручную переключать (зачем использовать не последнюю версию?), переключение шланг/гцц вообще без проблем переменной окружения. Проблем не замечал, но я массово и не собираю шлангом -- он всегда хуже при ближайшем рассмотрении (что-то простое он может соптимизировать лучше). Или собрать какой-нибудь пакет и все зависимости с другой libc или вообще для другой архитектуры. В частности, собираю софт для венды, когда я проверял, он потом работал в 7, 8 и 10 на системной libc (без cygwin).
Ответить | Правка | Наверх | Cообщить модератору

10. "Clang vs Gcc: две компиляторных системы в одном дистрибутиве"  +/
Сообщение от sidtver (ok), 08-Окт-20, 22:14 
> binutils
> правда придётся вручную переключать

  Если правильно понимаю, то фактически ручное переключение означает, что есть несколько (небольших) кусочков дистрибутива, т.е. библиотеки, собранные разными компиляторными системами. И ручное переключение и требуется для того, чтобы библиотеки при запуске собирались из одного кусочка. Но обычное штатное использование не особо подразумевает ручное управление.
  Вот и получается нужна два экземпляра дистрибутива, один собран gcc, другой - clang'ом, и при запуске приложения выбирается один из комплектов в "автоматическом" режиме?

Ответить | Правка | Наверх | Cообщить модератору

12. "Clang vs Gcc: две компиляторных системы в одном дистрибутиве"  +/
Сообщение от Аноним (8), 08-Окт-20, 22:22 
Есть binutils-config, который управляет симлинками на используемую системную версию. Её можно переключать, также как и компилятор по-умолчанию (gcc-config). Но компилятор и линкер можно задать переменными окружения вроде CC и LD.
Ответить | Правка | Наверх | Cообщить модератору

13. "Clang vs Gcc: две компиляторных системы в одном дистрибутиве"  +/
Сообщение от Аноним (8), 08-Окт-20, 22:25 
Ещё можно выставить вот эти, но вроде это излишне, и можно спокойно использовать гнутые

AR="llvm-ar"
NM="llvm-nm"
RANLIB="llvm-ranlib"

Ответить | Правка | Наверх | Cообщить модератору

15. "Clang vs Gcc: две компиляторных системы в одном дистрибутиве"  +/
Сообщение от sidtver (ok), 08-Окт-20, 22:40 
> Есть binutils-config, который управляет симлинками на используемую системную версию.
> Её можно переключать, также как и компилятор по-умолчанию (gcc-config). Но компилятор
> и линкер можно задать переменными окружения вроде CC и LD.

Чтобы не дублировать, просто сошлюсь на посты #9 и #14, приведенные чуть выше
https://www.opennet.ru/openforum/vsluhforumID9/10333.html#9
https://www.opennet.ru/openforum/vsluhforumID9/10333.html#14

На мой взгляд binutils-config - это про удобство что-то собрать одним компилятором и запустить потом все, собранное одним компилятором. Но исходный вопрос не про это.

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру