码迷,mamicode.com
首页 > 编程语言 > 详细

c++编译连接库

时间:2020-03-22 20:02:53      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:编译   展开   语法分析   cpp   汇编代码   工作   语法   词法分析   预处理   

学习from gcc/g++ 链接库的编译与链接

c++编译分为四个阶段

  1. 预编译
  2. 编译
  3. 汇编
  4. 链接

预编译

预编译是c++编译的最初部分,它的工作是在编译之前对程序内容进行最有的取舍处理,使得一些语句参加编译,而另一些语句不参加编译。
常用的预编译指令是:

 1、包含指令:#include
 2、条件指令:#if、#elif、#else、#endif、#ifdef、#ifndef
 3、定义指令:#define、#undef
  1. include 将包含的头文件展开到程序文件中

  2. 条件编译指令的作用是直接取舍程序语句和协调多个头文件
    比如在升级gcc版本时,同时需要满足旧版本编译,就可以使用条件编译
#if defined(__GNUC__) && (__GNUC__ >= 3 )
	//balabala
#else
	//balabala other
  1. 定义指令可以用来防止同一个文件被include多次
    这个阶段对于C预处理后的文件后缀是.i, c++处理后文件后缀是.ii

from c++ 预编译

编译

编译阶段的主要工作通过词法分析和语法分析将c++代码翻译成汇编代码
这个阶段会将.i文件转化为.s文件

汇编

顾名思义汇编是将汇编语言翻译成机器指令
将.s文件转化为.o文件

链接

静态链接库

动态链接库

c++编译连接库

标签:编译   展开   语法分析   cpp   汇编代码   工作   语法   词法分析   预处理   

原文地址:https://www.cnblogs.com/humeay/p/12547647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!