Linux(程序设计)实用知识库分享.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
Linux(程序设计) 目录 Linux(程序设计) Linux(程序设计):01程序编译原理(预处理、编译、汇编、链接) Linux(程序设计):02make与Makefile的设计与应用 Linux(程序设计):03GDB的使用(附GDB插件gef的下载安装) Linux(程序设计):04GDB的多进程、多线程调试 Linux(程序设计):05gcc的基本用法 Linux(程序设计):08perror、strerror函数(errno全局变量) Linux(程序设计):09UNIX系统数据类型 Linux(程序设计):10字节操纵函数(bzero、bcopy、bcmp) Linux(程序设计):12选项查询(sysconf、pathconf、fpathconf) Linux(程序设计):13功能测试宏(_POSIX_C_SOURCE) Linux(程序设计):14结构成员定位宏offsetof Linux(程序设计):15系统调用函数syscall Linux(程序设计):16sprintf、snprintf、sscanf Linux(程序设计):17通用型Makefile设计案例 Linux(程序设计):18libmysqlclient-dev库(C语言操作MySQL) Linux(程序设计):19main函数参数处理(getopt、getopt_long) strftime、strptime) Linux(程序设计):22Windows与Linux系统之间的MySQL连接 Linux(程序设计):24无锁CAS(附无锁队列的实现) Linux(程序设计):25gcc/g++编译器提供的原子操作(__sync_xxx) Linux(程序设计):26字符集与字符编码概述(附Unicode字符集实现原理) Linux(程序设计):27iconv库(转换字符编码) Linux(程序设计):28数据流压缩原理(Deflate压缩算法、gzip、zlib) Linux(程序设计):29Zlib库(数据压缩与解压) Linux(程序设计):30cJSON库(C语言操作JSON) Linux(程序设计):31jsoncpp库(C++操作JSON) Linux(程序设计):41TCP网络编程 Linux(程序设计):42UDP网络编程(单播) Linux(程序设计):43UDP广播编程 Linux(程序设计):44UDP组播编程 Linux(程序设计):45高并发线程池的设计 Linux(程序设计):47recv、send实现带外数据的读写(MSG_OOB选项) Linux(程序设计):48缓冲区大小(SO_RCVBUF、SO_SNDBUF套接字选项) Linux(程序设计):49dup实现一个基本的CGI服务器 Linux(程序设计):50readv、writev函数解析处理HTTP报文 Linux(程序设计):51select实现接收普通数据与带外数据 Linux(程序设计):01程序编译原理(预处理、编译、汇编、链接) Linux(程序设计):01程序编译原理(预处理、编 译、汇编、链接) 一、程序编译原理 程序编译一般分为四个步骤,最后生成一个可执行的文件: 第一步(预处理):在程序运行(main函数执行)之前,修改源码,主要处理代码中的 #include头文件和#define宏定义代码(将程序运行时用到的#include头文件中的代码 和#define宏定义的代码进行替换),最后生成一个.i文件(.i文件里面是替换代码之 后的代码文件) 第二步(编译):此阶段会检查代码的规范性、是否有语法错误等。在检查无误后, 把.i代码文件进行编译,然后生成一个汇编语言.s文件(.s文件里面都是汇编语 言)。此处只进行编译生成汇编代码,而不真正的进行汇编 第三步(汇编):此阶段把.s文件翻译成二进制机器指令.o文件。生成的.o文件是二 进制文件(直接用文本工具打开看到的将是乱码,我们需要反汇编工具如GDB的帮助才 能读懂它),Windows下为.obj文件 第四步(链接):此阶段会链接所有的函数、全局变量,将所有的.o文件链接成一个

知传链电子书

文档评论(0)

IT文档大师 + 关注
实名认证
文档贡献者

IT架构师、码农、自由职业者

1亿VIP精品文档

相关文档