Возможно ли для 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 утверждается, что этот параметр недоступен из среды разработки.