Очистка проекта VC ++ 6

Я работаю с очень старым и большим проектом VC6 ++, и все это испортилось. Повсюду есть неиспользуемые файлы и папки, копии папок, и чистить их вручную в текущем состоянии просто беспорядок.

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

Настройки проекта мне совершенно не помогают, потому что он просто использует копии папок и дополнительные подключаемые каталоги.

Какие-либо предложения?


person John    schedule 13.09.2011    source источник
comment
Под linux я бы просто собирал вещи и проверял временную метку последнего доступа к файлам, не знаю, есть ли в Windows что-нибудь подобное.   -  person PlasmaHH    schedule 13.09.2011
comment
Visual C ++ 6? (/ me check current date) ... В 2011 году? ... В случае вашей проблемы удалите все, кроме файлов DSW и DSP, и попробуйте компиляцию. Для каждой ошибки возвращайте ОДИН файл, необходимый компилятору, и повторите попытку. В конце концов, у вас будет только то, что необходимо для этого проекта ...   -  person paercebal    schedule 13.09.2011
comment
этот вопрос очень похож на инструменты stackoverflow.com/questions/1301850/   -  person dip    schedule 13.09.2011
comment
Таким образом, вашему приложению, вероятно, больше десяти лет, и оно основано на довольно ошибочной реализации языка C ++. Это действительно все еще соответствует текущим требованиям? Неужели не стоит его переписывать? Тем не менее, я знаю, что возвращение проекта в управляемое состояние, вероятно, будет незаменимым шагом для принятия вышеуказанных решений.   -  person Nicola Musatti    schedule 13.09.2011


Ответы (3)


VC6 создаст для вас make-файл:

Вы можете использовать сгенерированный make-файл (и связанный с ним .dep файл) в качестве отправной точки и отредактировать его до списка файлов, которые используются в сборке.

Это позволит вам увидеть файлы заголовков, от которых зависит проект, в дополнение к файлам _2 _ / _ 3 _ / _ 4_, которые могут отображаться в журнале сборки. Следует иметь в виду, что вы, вероятно, также захотите отслеживать .dsw и .dsp рабочее пространство и файлы проекта.

Если вы немного авантюрны, вы можете убедить make-файл скопировать исходные файлы в какое-то другое место для вас с соответствующим переопределением определенных макросов и / или зависимостей. Но это, вероятно, принесет больше хлопот, чем того стоит за одноразовое усилие.

Наконец, есть коммерческий продукт CopyWiz от Kinook Software, который, похоже, имеет функции, которые могут делать то, что вы Ищем (и он поддерживает VC ++ 6). Примечание: я не уверен, что он будет делать то, что вы хотите, но, возможно, стоит взглянуть на него.

person Michael Burr    schedule 13.09.2011
comment
Я написал небольшой инструмент для анализа make-файла, и это отличное решение. Большое тебе спасибо! - person John; 14.09.2011

Что ж, если вы хотите проанализировать вывод компилятора, вы можете узнать, какие файлы на самом деле используются. Я также нахожу this при поиске в Google, возможно, вы захотите попробовать (я сам не пробовал). Мой способ - очистить сборку, перечислить все исходные файлы, построить и для каждого источника найти соответствующий ему .obj. Те, у которых нет .obj, не используются. Обратите внимание, что это работает только для исходных файлов, неиспользуемые файлы заголовков остаются незамеченными.

person LeleDumbo    schedule 13.09.2011
comment
Проверка obj-файлов кажется хорошей идеей. Но как насчет проверки даты последнего доступа к файлам? Я подумал об этом, и он должен показать, какие файлы заголовков также используются. Хм. Возможно, я что-то упускаю. - person John; 13.09.2011
comment
Начните с метода файла obj. Это просто и быстро, и он избавит вас от многих устаревших. - person Dennis; 13.09.2011

да. Запустите Process Monitor из SysInternals. Он может захватывать все события файловой системы и фильтровать их на основе пути и других факторов.

Итак, установите фильтр в корень вашего исходного дерева, только успешное чтение файла (VC ищет заголовки во многих местах) и создайте свой проект. Вы, вероятно, еще увидите несколько тысяч событий. Итак, сохраните их в файл, отсортируйте по пути и удалите повторяющиеся пути (особенно в заголовках будет много повторяющихся записей)

person MSalters    schedule 13.09.2011