Есть ли какая-либо альтернатива gcc, чтобы делать пратическую разработку под * nix?

Я когда-то слышал высказывание, мы могли жить без linux, но мы определенно не могли жить без gcc. Кажется, в мире Linux есть только один компилятор C. Есть ли альтернативы gcc? Используют ли программисты под AIX/HPUX/Solaris только gcc для разработки программ?

Ответы

Ответ 1

Конечно, есть хотя бы одна альтернатива gcc для Linux: clang - это C-компилятор (и связанные диалекты, хотя до Я вижу, C-интерфейс намного более зрелый, чем другие диалекты), используя LLVM. Я думаю, Apple поддерживает развитие LLVM и друзей; это полезно для их Grand Central Dispatch/OpenCL, IIRC.

Ответ 2

У Intel есть "некоммерческий" компилятор С++ здесь. Убедитесь, что вы прочитали лицензию faq здесь она поставляется со строками.

Вот list, который может быть полезен.

Ответ 3

Если вы ищете легкий и быстрый компилятор C TinyCC (см. также Wikipedia), безусловно, стоит посмотреть.

Однако есть некоторые недостатки. Он выполняет очень мало оптимизаций, и последняя стабильная версия поддерживает только архитектуру x86, хотя в ветке разработки уже есть экспериментальная поддержка x86_64.

В настоящее время я, вероятно, буду придерживаться GCC для любых серьезных программ, рассматривающих эти недостатки TinyCC.

Единственный прецедент, в котором TCC сегодня может оказаться очень удобным, - использовать его в качестве интерпретатора для кода C. Я не оценил производительность, но могу себе представить, что небольшой "script" в C может сгладить конкуренцию с кодом Bash (с точки зрения разбора и скорости выполнения).

Разработчикам даже удалось интерпретировать ядро ​​Linux 2.4 в реальном времени и сразу же загрузить его! Существует изображение ISO, плавающее вокруг, которое прекрасно работает в Qemu.

Поскольку GCC основан на коде, который датируется несколько десятилетий назад, когда не было много знаний о структурировании кода, правильном использовании шаблонов проектирования и т.д., разработчики GCC поддерживают ржавую и подверженную ошибкам основу. К сожалению, код беспорядок, и нет никакой альтернативы полной перезаписи. Вероятно, это также причина, по которой разработчики LLVM также придумали Clang и начали с нуля. В долгосрочной перспективе я действительно надеюсь, что будет надлежащая замена GCC, которая делает все концептуально с самого начала. Clang звучит как достойная замена, хотя мне не совсем нравится выбор С++, но это еще одна тема.:)

Ответ 4

Рассмотрите компилятор PathScale Path64 и Open64. Твердый, с открытым исходным кодом, с длинной историей. Довольно популярны в высокопроизводительных вычислениях, а также хорошая платформа для академических исследований.

https://github.com/path64/compiler

http://www.open64.net/

Ответ 5

Существует также libfirm/cparser, который реализует большинство gcc-расширений и генерирует оптимизированный код (в настоящее время для x86 32bit и sparc): http://pp.ipd.kit.edu/firm/

Ответ 6

Sun Studio 12 теперь доступна как скачать бесплатно для Linux (по крайней мере, для X86) и всех вариантов Solaris. Я не знаю, как сравнивается версия компилятора X86/Linux, но версия компилятора Sparc/Solaris способна создавать значительно более оптимизированный код, чем GCC, а отладчик гораздо мощнее GDB. Недостатком является то, что вы застряли с вялым графическим интерфейсом на основе Java для отладчика.

Ответ 7

В терминах компиляторов C я не смог бы обойтись без gcc. Но C - не единственная игра в городе. Я довольно часто собираю быстрые небольшие приложения на Python и немного более сложные настольные на Java (Sun one, а не gcj).

Я бы не выбрал ваш язык для приложения. Это гораздо лучший вариант для выбора вашего приложения, а затем сделать это на подходящем языке. Если C - это все, что вам известно, используйте его. Но я нахожу огромную библиотеку структур данных и алгоритмов в Java (и Python) бесценной при быстром прокрутке кода.

Я мало что знаю о HPUX или Solaris, но даже в AIX я предпочитаю использовать gcc вместо xlC, компилятора IBM.