Должен ли я использовать последнюю версию GCC (в целом, и особенно сегодня) - PullRequest
7 голосов
/ 17 января 2012

Мне было интересно, безопасно ли использовать последнюю версию GCC, или люди обычно возвращают несколько версий назад (и если да, то сколько). Существуют ли надежные версии, в которых можно предположить, что они (относительно) не содержат ошибок, или я могу с уверенностью предположить (для программ, не спасающих жизнь), что последняя версия GCC безопасна для использования?

EDIT:

Под безопасным - я имею в виду, в основном, отсутствие ошибок, то есть с точки зрения исполнения.

Ответы [ 4 ]

4 голосов
/ 17 января 2012

В отсутствие конкретных требований об обратном я склонен использовать любую версию gcc, поставляемую моим (достаточно современным) дистрибутивом Linux. До сих пор эта политика хорошо сработала для меня.

3 голосов
/ 17 января 2012

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

2 голосов
/ 17 января 2012

Лучшая поддержка C ++ 11 в последней версии gcc.Вы можете скомпилировать его самостоятельно, хотя обратите внимание, что gcc 4.7 почти готов к выпуску, поэтому вы можете попробовать его.Я делал это довольно часто, почти со всеми версиями gcc, начиная с 4, для улучшенного соответствия стандартам C ++ и, зачастую, для увеличения времени компиляции и улучшения оптимизатора.

В общем, рекомендуется использовать новейший компилятор g ++.

Однако в некоторых случаях у меня возникали проблемы с библиотеками, которые я использую.Например, версия 4.5 g ++ сломала версию boost :: xpressive, которую я использовал.Точнее сказать, что-то сломалось в библиотеке.Кроме того, чем выше вы работаете с g ++, тем больше проблем у вас будет при попытке скомпилировать код с другими компиляторами, отставая от реализации новых функций.

Я считаю, что да, используйте последнюю версию компилятора,и использовать хорошие вещи, которые есть в новом стандарте, потому что они делают меня более продуктивным и счастливым программистом.Затем, если мне нужно перенести мой код на другой компилятор, я просто настраиваю части кода, которые мне нужны, что в конце не занимает так много времени.

1 голос
/ 17 января 2012

На обычной хост-системе я бы пошел с тем, что предусмотрено ОС / дистрибутивом, и, возможно, установил несколько версий параллельно.На моей системе Macosx установлены gcc-4.2 (стандарт OSX), gcc-4.6.2, gcc-llvm (стандарт OSX) и gcc-HEAD.Таким образом, я могу довольно легко опробовать вещи, обновить gcc-HEAD, чтобы иметь передовой край, но по-прежнему иметь рабочие и поддерживаемые версии для моей повседневной разработки.

В коммерческих / рабочих условиях я бырекомендую быть очень анальным при написании номеров используемых версий и создавать резервные копии всей цепочки инструментов компилятора, чтобы позже можно было вернуться к работающей идентичной системе, если это потребуется для обслуживания.Нет ничего более раздражающего, чем то, что компилятор слегка изменяет (раздражает и т. Д.).

Это даже более важно для разработки встраиваемых систем, так что я на самом деле сохраняю набор инструментов компилятора в git.Небольшое увеличение версии в gcc может означать либо ужасную досадную ошибку компилятора (такие случаи случаются гораздо чаще на встроенных платформах, как мне кажется), либо увеличение размера, например, 40 байт, что может полностью стереть ваш проект.

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