我正在运行VS 2010 SP1,我有一个特殊的分析配置,每周运行一次(因为构建服务器需要很长时间来分析所有内容)。
我希望这个配置能够在不费力链接的情况下运行。如果分析传递了项目中的所有代码,那么我希望构建只是继续到下一个项目而不进行链接。
我看不出告诉VS只是在没有链接的情况下运行C ++编译器的方法。有没有人知道在现有的vcxproj中执行此操作的方法?
[编辑]澄清:我希望在IDE中工作。
我的下一步行动是手动编辑vcxproj,看看我是否无法摆脱构建的链接阶段。
答案 0 :(得分:4)
C ++编译器cl.exe
当然可以,那就是/c
开关(仅编译,不链接)。但不确定IDE使用的msbuild
系统以及适用于.vcxproj
文件的系统。
根据the documentation,这应该有效:
msbuild /target:Compile projectfile
或
msbuild /target:projectname:Compile solutionfile
您可能还对/filelogger
和/fileloggerparameters
选项感兴趣,这些选项可让您捕获构建消息。
答案 1 :(得分:2)
就在这种情况下;尝试在使用IDE时无需链接即可构建。
为了实现我的配置,我改变了我的应用程序的配置类型:
General -> Project Defaults -> Configuration Type
具体而言,从Application (.exe)
更改为Static library (.lib)
。这将允许您构建所有项目,但不需要进行任何链接。
答案 2 :(得分:1)
好的,我的问题并不完全明确,我应该问的是: “我可以在不链接的情况下在C ++项目上运行静态代码分析吗?”。
最近的答案是“是的,在VS 2017中使用msbuild属性RunCodeAnalysisOnce = true”。
答案 3 :(得分:0)
Microsoft docs 声称此选项在开发环境中不可用。