visual studio .vcxproj

参考文献地址:
1.https://devblogs.microsoft.com/visualstudio/a-guide-to-vcxproj-and-props-file-structure/
2.https://blog.csdn.net/huhaoxuan2010/article/details/76797588
3.https://blog.csdn.net/zdl543/article/details/17880195

自动化程序编译需要理解编译的每个环节,确保项目模块划分。

.vcxproj文件大概结构

< Project ToolsVersion = “ 4.0 ” xmlns = “ http://schemas.microsoft.com/developer/msbuild/2003 ” >

设置通用参数

< Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

< ImportGroup Label = “ PropertySheets ” />

< Import Project="$(SolutionDir)\props\ThirdLib.props" />

< PropertyGroup Label = “ UserMacros ” />

< PropertyGroup Condition="’ ( C o n f i g u r a t i o n ) ∣ (Configuration)| (Configuration)(Platform) == ‘Debug|Win32’ " >
< LinkIncremental >true< /LinkIncremental >

< PropertyGroup />

< ItemDefinitionGroup />

< ItemGroup />

</ Project >

最后在解释一下 LinkIncremental
编译器在link的时候会check .obj或.o或.lib文件是否发生改变,若发生改变则需要重新编译,再link,生成目标文件。
例如我们在调试某段代码,突然发现有个小bug,那么我们修改过后打算重新链接,编译器会如何处理?
1.所有代码重新编译,然后再次link
2.初次编译时为每个局部代码预留一部分空间,当出现问题时局部代码重新编译,其他部分不做修改,这样二进制文件的局部更新,其他部分不变,大大缩短了重新编译的时间。
这也是为什么Debug生成的文件会远远大于Release生成的文件,虽然< LinkIncremental >true< /LinkIncremental >可以设置开关,但是release在link的时候自动跳过这个开关!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值