有关编译的笔记

到目前为止,未出错的认识,或者出错后更新的认识,并不保证正确,但目前是有效的。


1,分离编译认识

编译过程----预处理,编译,汇编,连接。

预处理阶段,预处理项被解析,和.h被嵌入到c文件中。

  所以,1)预处理项不受作用域限制,从定义起到文件末尾,或解定义,例如#define

               2)C文件是核心 ,预处理过后应该只剩c文件了,所以好习惯是模块文件的,H文件不要加各种头文件,能加在c文件的都加在c文件。不然编译出错都不知道哪里出问题

              3)没有3了

编译阶段,C文件被翻译为汇编代码。

汇编阶段,汇编代码被翻译为对应二进制文件

连接阶段,各文件被连接为一个工程文件。  


累了不写了,脑子内存不够了,打算换个苹果的操作系统,好好过日子。

猜想,com之类的是在 汇编或者链接阶段实现?

---------

@2017-11-2,问题vs各阶段生成了哪些文件

---源由,学dll的时候发现用到了lib,但是感觉lib不生成dll也有啊。静态连接,动态连接具体细节是啥啊?---惠惠大佬说有三种,半静态

预处理

编译

---

汇编

 ---obj

连接

exe dll

lib pdb obj 等等

--------------又

看了下lib在普通情况下不生成,看项目看错乱了。

那么所谓的三种也是指dll了,另开一篇,mdzz了

@2017-12-16 今天重新看c++  编译阶段  http://zh.cppreference.com/w/cpp/language/translation_phases

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值