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