Стоит ли компилятор comeau по сравнению с gcc? - PullRequest
10 голосов
/ 17 июля 2009

Я до сих пор использовал gcc, g ++ для разработки приложений на C, C ++ и нашел это удивительным. Но просматривая Stack Overflow, я обнаружил, что многие участники утверждают, что отчеты об ошибках в компиляторе Comeau - это гораздо больше, чем в любом другом компиляторе. Это правда? Я не инвестировал ни в один коммерческий выпуск компилятора. Действительно ли стоит тратить деньги на коммерческий выпуск компилятора C / C ++, когда gcc, g ++ добиваются цели?

Ответы [ 6 ]

8 голосов
/ 17 июля 2009

Мой опыт написания C ++ заключается в том, что компиляция вашего кода с использованием более чем одного компилятора - отличный способ найти странные угловые случаи в вашем коде. В нашем случае мы использовали gcc, Apple gcc и компилятор Visual Studio cl (это бесплатно). В Windows я предпочитаю компилятор cl, поскольку он компилируется быстрее (для нас примерно в пять раз быстрее) и производит лучший код (примерно на 30% быстрее в прошлый раз, когда я проверял). Какой компилятор создает самый быстрый код, всегда зависит от приложения. В нашем конкретном случае компилятор Intel не так хорош в создании быстрого кода вопреки распространенному мнению, поэтому нет реального стимула его использовать.

Если бы у нас были деньги, чтобы компилировать с Comeau, было бы неплохо помочь с дополнительной проверкой соответствия стандартам. Кроме того, я доволен компиляторами, которые мы используем.

8 голосов
/ 17 июля 2009

Отличительной особенностью компилятора Comeau является его соответствие (включая C ++ 03!) И превосходное сообщение об ошибках.

Есть онлайн способ попробовать это тоже: http://www.comeaucomputing.com/tryitout/

Компилятор Comeau определенно стоит того, чтобы эти функции того стоили.

Снимаю шляпу перед компилятором Comeau!

5 голосов
/ 17 июля 2009

Существует три основных варианта использования компилятора Comeau:

  • для платформ, имеющих только компилятор C

  • с дополнительным компилятором с хорошей репутацией соответствия и хорошим сообщением об ошибке

  • экспериментирование с функциями, которые доступны только с ним (например, эксперимент с экспортированными шаблонами был моей причиной купить его несколько лет назад)

Обратите внимание, что отладка не является одним из применений. Он генерирует C-код, который затем компилируется вашим C-компилятором. Он использует директивы #line, так что вы можете шаг за шагом идти в своем коде, но чтобы сделать больше, у вас возникнет та же проблема, что и при отладке любого языка, использующего C в качестве промежуточного языка: отладчик не знает соглашения начального языка.

2 голосов
/ 17 июля 2009

Если вы довольны инструментами gcc, придерживайтесь их. Не исправляй то, что не сломано. Они ежедневно используются многими людьми, и они, безусловно, очень хороши.

Тем не менее, gcc был подвергнут критике за то, что он "медленнее с каждым выпуском и создает дерьмовый код". Не знаю, каково «дерьмо», но мы компилировали критичные по времени разделы с помощью компиляторов, зависящих от производителя оборудования (например, Intel). В некоторых случаях они действительно создают более быстрый код по сравнению с тем, что достигает gcc. Но обычно разница не имеет значения.

1 голос
/ 17 июля 2009

Я бы сказал, что нет, g ++ - отличный компилятор с огромным сообществом, поддерживающим его, на самом деле нет необходимости переключаться на коммерческий компилятор, если вам не нужна поддержка, которую он предлагает. большой разработчик, вы, вероятно, нет. С g ++ и VS Express на окнах на самом деле нет нужды тратить деньги на компилятор. Лучшие места, где можно потратить деньги / время!

0 голосов
/ 17 июля 2009

Я считаю, что версия Comeau Release довольно стабильна. Когда вы покупаете коммерческий компилятор C / C ++, вы будете платить в основном за определенные функции . Вам следует решить, нужны ли вам эти функции.

Если у вас нет особых требований, компилятор GNU C / C ++ - отличный выбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...