c++编译连接库

学习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文件

链接

静态链接库

动态链接库

猜你喜欢

转载自www.cnblogs.com/humeay/p/12547647.html