2010-12-16 2 views
9

Я потратил много времени на использование компилятора Microsoft cl и обнаружил, что коды ошибок, которые он дает в сообщениях компиляции (например, C1234, C5432 и т. Д.), Могут быть очень полезными. Когда я получаю сообщение об ошибке, я не знаком с тем, что могу легко найти его в MSDN и получить более подробное объяснение того, что это значит.gcc error message repository

Теперь я использую gcc почти исключительно, и я нахожу, что мне не хватает этой функции. Когда я получаю некоторую ошибку в gcc, я, кажется, трачу много времени на поиск текста ошибки для получения информации об этом. Есть ли репозиторий сообщений об ошибках gcc, где каждый из них объясняется более подробно?

+0

Duplicate: http://stackoverflow.com/questions/1043379/gnu-c-error-messages/ –

ответ

0

Я нахожу, что Googling точное сообщение об ошибке (исключая изменения, такие как имена переменных/функций) дает неплохие результаты. Иногда это помогает заключить все или часть (-ы) сообщения об ошибке в кавычки, чтобы оно рассматривалось как предложение, а не набор слов.

This page объясняет некоторые из основных сообщений об ошибках.

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

+0

Я уже делаю все это. – Mike

+0

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

+0

Но это точно точка , Когда я получаю сообщение об ошибке, которого я никогда не видел, и он использует какую-то загадочную формулировку, было бы неплохо иметь быстрый способ поиска ошибки, не задаваясь вопросом, насколько надежным является источник информации. Многие ошибки, подобные этому, привязаны к определенной части стандартов C/C++; получить ссылку на то, где было бы хорошо. Ответ на вопрос нет, нет репозитория или ссылки, или вы просто не знаете об этом? – Mike

4

Я не знаю ни одного полного хранилища, включая полные объяснения, но для себя:

  • Со временем вы узнаете, что означают сообщения об ошибках частности (особенно с точки зрения «Вы пропускаете ; но компилятор не может сказать »).
  • Google URL-адрес для постоянной части сообщения об ошибке в кавычках (не включая имена функций, например) часто дает очень хорошие объяснения в первых 3-5 ударах.
  • Связанные с шаблоном ошибки обычно худшие. Для них компилятор дает вам два номера строк: место, где существует шаблон шаблона, и место, в котором оно создается. Глядя на обе строки кода в контексте, часто можно сделать вещи более понятными («Почему она использует THAT overload?»). Иногда самым простым способом является создание тестовой программы с использованием более простых типов для определения того, что говорит компилятор (поскольку это не будет достаточно полезно для отображения typedefs в сообщении об ошибке).
  • Если это небольшой фрагмент кода, попробуйте его в другом компиляторе (например, Comeau online) и посмотрите, является ли ошибка более ясной.