2009-06-10 6 views
9

Есть ли способ заставить компилятор Delphi постоянно отображать все подсказки и предупреждения?Как заставить компилятор Delphi отображать все подсказки и предупреждения

Вот поведение, что я в настоящее время видим в Delphi 6:

  1. Заканчивать свежую копию моего заявления от контроля исходного
  2. Открыть проект в Delphi и компиляции
  3. Все подсказки и предупреждения для проект отображаются
  4. Сделать изменение в одном блоке
  5. компилирования
  6. Только подсказки и предупреждения отображается измененный блок

Итак, я подумал, что, возможно, смогу обмануть Delphi, удалив все файлы dcu, чтобы заставить его перекомпилировать все. Не повезло. Компилятор действительно перекомпилирует все блоки, но не отображает подсказки и предупреждения для этих устройств.

EDIT: Выполнение полной сборки (Project> Build) дает те же самые неудачные результаты.

НОВАЯ ИНФОРМАЦИЯ: Если я изменяю устройство и компилирую, я получаю предупреждения. Однако, если я изменяю единицу, а затем строю, я не получаю предупреждения. Я думаю, это указывает на то, что какие-то предупреждения отключены. Возможно, в сторонней библиотеке?

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

+0

Delphi 1 или Delphi 2009, или что-то промежуточное? Было бы полезно узнать ... – Roddy

+0

Я использую Delphi 6 –

ответ

3

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

+0

Я не включаю в себя какие-либо файлы (помимо операторов использования), и моя интерпретация файлов справки в директивах $ WARN и $ WARNINGS заключается в том, что они не применяются за пределами текущего устройства. В любом случае, я не получил ни одной из этих директив в моем коде. Проблема может возникнуть из-за использования используемого устройства из сторонней библиотеки? –

+0

У нас была эта проблема с сторонним кодом, где область действия не была ограничена, как ожидалось. –

6

Подсказки и предупреждения генерируются компилятором. Он будет сообщать только о единицах, которые он составил. Команда «компиляция» будет только скомпилировать файлы с измененными. Для принудительной перекомпиляции всех единиц, используемых в вашем проекте, вместо этого используйте команду Build.

Более поздние версии назначают комбинацию клавиш (Shift + F9) команде «Build».

Чтобы получить эту комбинацию клавиш в Delphi 6, install this utility, который я использовал на некоторое время с большим успехом на Delphi 5.

+0

Выполнение полной сборки дает те же результаты, что и компиляция. –

+0

Что произойдет, если вы вручную удалите все файлы .DCU, а затем выполните полную сборку? – JosephStyons

+0

Все тот же результат, я боюсь. –

2

Если вы используете dcc32.exe, будут показаны все предупреждения, всегда. (Это еще одна причина, по которой я использую скрипты сборки для всех моих проектов.)

+1

Это не совсем так, только когда ключ -B предоставляется dcc32, что эквивалентно выполнению полной сборки в среде IDE. Без этого параметра dcc32 по умолчанию также выполняет инкрементные сборки. И предупреждения будут отображаться только для единиц, которые собираются, очевидно. – mghie

+1

Вы правы, -B требуется. Для некоторых проектов я начинаю с копирования источников в пустую структуру целевого каталога, только в этом случае a -B не требуется. – mjn

0

Я по-прежнему использую D6 для некоторых проектов, и если я делаю полную сборку, все подсказки и предупреждения отображаются/повторно отображаются. Для проверки синтаксиса или компиляции отображаются только измененные сообщения модуля.

У вас где-то есть что-то еще, что-то не так. Попробуйте удалить файл проекта .dsm и .dof (они будут перестроены) .dof-файл содержит предупреждения и флаги подсказок.

+0

Не повезло с восстановлением DOF. Я не могу найти файл .dsm в моем проекте. –

3

У меня была такая же проблема, и, наконец, я нашел решение ... Искать строки $ WARNINGS OFF и $ HINTS OFF, а не только файлы * .pas, но и из всех файлов. У меня была эта странная идея, в качестве третьей стороны .inc файла:

{$ IFDEF DEBUG} {$ ПРЕДУПРЕЖДЕНИЯ О} {$ HINTS ON} {$ ELSE} {$ Warnings OFF} {$ намеками OFF } {$ ENDIF}

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^