Почему в некоторых сборках проекта C ++ отображается 00:00:00 прошедшего времени и нет деталей окна вывода? - PullRequest
6 голосов
/ 19 августа 2011

У нас есть 160+ проект VS2010 C ++.Я начинаю с полностью пустой выходной директории и "Build Solution".У меня IDE buildbosity установлен на Normal.Во время сборки смотрю окно вывода.(VS2010 настроен на одновременную сборку 2 проектов, каждый из которых компилирует только 1 файл .cpp за один раз.)

Большинство проектов показывают многочисленные выходные строки из компилятора (каждое имя файла .cpp) и библиотекаря / компоновщика.

Но некоторые проекты (10 в последнем прогоне) показывают ЧРЕЗВЫЧАЙНО минимальный результат.Пример:

29>------ Build started: Project: DebuggingService (LHFramework\DebuggingService\DebuggingService), Configuration: Debug x64 ------
29>Build started 8/17/2011 3:23:24 PM.
29>
29>Build succeeded.
29>
29>Time Elapsed 00:00:00

Проекты с такими симптомами -не-отключены, имеют много файлов .cpp и соответствующие файлы результатов (.obj, .lib, .exe и т. Д.) -Are-производится этой сборкой.

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

Похоже, что эти сборки проекта = являются =происходит (очевидно, занимает более 00:00:00), но отображение в окне вывода пропускается.Я не знаю никаких параметров проекта, которые влияют на вывод сборки: я думаю, что это контролируется только настройками уровня IDE.В любом случае мы используем одинаковые настройки для всех проектов, поэтому все они должны показывать один и тот же уровень детализации вывода.

Файл .log содержит только последние пять строк вывода выше, за вычетом лидирующих "29> "индикатор.Созданы различные файлы .tlog: 3 из "cl", 3 из "custombuild", 3 из "lib".Я почти могу понять, что они имеют в виду.:)

ВЕРОЯТНО ВАЖНОЕ ПРИМЕЧАНИЕ: Наши файлы .sln / .vcxproj / etc создаются CMake.Я не настраивал это, но у всех проектов есть собственный шаг сборки для запуска CMake, чтобы определить, какие работы нужно выполнить (компилировать / связать / и т.д.).

SO ... Это известная проблема с VS2010??Или мы наткнулись на какое-то взаимодействие VSake0 <-> CMake?

Mike

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Я вообще не слышал об этой конкретной проблеме, но обязательно попробуйте использовать последнюю версию CMake с Visual Studio 2010. Последний официальный выпуск был с начала июля, CMake 2.8.5. И первый кандидат на релиз CMake 2.8.6-rc1 только что вышел вчера.

Более ранние версии CMake имели несколько известных проблем (хотя, насколько мне известно, не этой) с решениями VS 2010, и многие из них были исправлены по состоянию на 2.8.5. Были некоторые очень неприятные проблемы с пользовательскими правилами сборки, для решения которых потребовалось несколько итераций.

Дайте CMake 2.8.5 или 2.8.6-rc1 шанс. Возможно, эта проблема связана с чем-то, что уже исправлено ...

1 голос
/ 24 августа 2011

Мне кажется, что зависимости проекта вызывают запуск проектов для сборки более одного раза, и при втором вызове проект пропускается, потому что его не нужно перестраивать. Различия во времени объясняют, почему вы каждый раз видите разные проекты с таким поведением.

В журналах есть ли предыдущие экземпляры проекта, которые показывают 00:00:00 истекшее время? Это было бы хорошим показателем того, был ли он построен ранее.

Вы также можете включить многословность MSBuild в Visual Studio, выбрав Инструменты> Параметры> Проекты и решения> Построить и запустить. Установите для параметра «Подробность файла журнала сборки проекта MSBuild» значение «Подробно» или «Диагностика» и посмотрите, есть ли что-нибудь более интересное в ваших журналах.

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