Есть ли какая-либо альтернатива 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.