Возможно ли для Visual Studio C++ компилировать объекты без ссылок

Я использую VS 2010 с пакетом обновления 1 (SP1) и у меня есть специальная конфигурация анализа, которая запускается раз в неделю (потому что сборочный сервер долго анализирует все).

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

Я не вижу способа сказать VS у просто запустить компилятор C++ без линковки. Кто-нибудь знает способ сделать это в рамках существующего vcxproj?

[Править] Пояснение: я бы хотел, чтобы это работало из среды IDE.

Мой следующий курс действий - ручное редактирование vcxproj, чтобы увидеть, не могу ли я избавиться от фазы компоновки сборки.

4 ответа

Решение

Просто в этой ситуации; пытаюсь собрать без ссылок при использовании IDE.

Чтобы добиться этого для моей конфигурации, я изменил тип конфигурации моего приложения:

General -> Project Defaults -> Configuration Type

В частности, меняется от Application (.exe) в Static library (.lib), Это позволит создавать все ваши проекты, но не требует каких-либо ссылок.

Компилятор C++ cl.exe конечно может, это /c переключатель (только компиляция, не ссылаться). Не уверен насчет msbuild система, которую использует IDE и которая работает с .vcxproj файлы, хотя.

Согласно документации, это должно работать:

msbuild /target:Compile projectfile

или же

msbuild /target:projectname:Compile solutionfile

Вы также можете быть заинтересованы в /filelogger а также /fileloggerparameters параметры, которые позволяют вам захватывать сообщения сборки.

Хорошо, я не совсем определился в своем вопросе, я должен был спросить: "Могу ли я выполнять статический анализ кода в проектах C++ без ссылок?".

Последний ответ: "Да, в VS 2017 используется свойство msbuild RunCodeAnalysisOnce=true".

В документации Microsoft утверждается, что этот параметр недоступен из среды разработки.

Другие вопросы по тегам