翻译《The Old New Thing》- A graphical depiction of the steps in building a C++ executable, enhanced ...

A graphical depiction of the steps in building a C++ executable, enhanced for classic Win32 - The Old New Thing (microsoft.com)icon-default.png?t=N7T8https://devblogs.microsoft.com/oldnewthing/20240530-00/?p=109823

Raymond Chen 2024年05月30日


 一图描述构建 C++ 可执行文件的步骤,并针对经典 Win32 进行了改进

        上一次,我们创建了一个图表,展示了构建C++可执行文件的基本步骤。虽然这个图表同样适用于Windows程序,但往往在C++构建过程中,有些部分是其他工具的输出结果。此外,还有一些Windows程序特有的部分,它们并不包含在C++构建流程中,因为它们生成的不仅仅是C++程序。

        让我们将这些常见于传统Win32应用程序的部分加入到我们的图表中。        

      

  

        原始图表位于左下角,它处理C++源文件(.h, .cpp),并最终生成一个模块(.dll 或 .exe)。新增的步骤包括从其他源生成C++源文件,或者为最终模块添加额外内容。

        如果你有一个.idl文件,它将由MIDL编译器处理,生成.h和.c文件,这些文件将被你的项目代码所使用。

        你的项目中可能还包含其他代码生成器。例如,如果你有一个yacc语法文件或一个Lottie动画,你也会有一个编译器生成器或动画生成器,作为代码生成步骤,将原始材料转化为代码和资源,供其他部分使用。

        一旦我们生成了所有C++源文件,我们就可以按照上一次的流程进行:编译C++源文件为对象文件,并可能生成一个.lib库文件。

        同时,对于传统的Win32资源,资源编译器会处理.rc文件及其支持文件(如.ico和.bmp),生成.res资源文件。

        在所有.obj、.lib和.res文件生成后,我们将它们全部提供给链接器,链接器将它们合并生成最终的模块,即.dll或.exe文件。

                整个过程的本质并没有改变。只是在编译之前(生成头文件和代码)、编译过程中(生成资源文件)以及编译之后(将资源集成到最终的二进制文件中),有更多的步骤需要处理。

下次,我们将通过添加打包和XAML的相关内容,进一步丰富这个中心图表。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0x0007

可不可奖励我吃只毛嘴鸡 馋😋

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值