编译器背后的故事
一、生成静态库和动态库,并记录文件大小
首先创建我们的目录text2
写sub1.h
写sub2.h
写sub1.c
写sub2…c
编写mian.c
将sub1.c和sub2.c编译成.o文件
以.o文件创建静态库
在程序中使用静态库
在程序中使用动态库
两个文件大小进行比较
静态
动态
二、gcc编译器是怎么编译的
建立一个文件夹text3,然后写一个程序hello.c
程序内容,程序输出一个Welcome
程序编译过程
A:预编译(将将源文件 hello.c 文件预处理生成 hello.i)
B:编译(将预处理生成的 hello.i 文件编译生成汇编程序 hello.s)
C:汇编(将编译生成的 hello.s 文件汇编生成目标文件 hello.o)
D:链接(分为静态链接和动态链接,生成可执行文件)
查看hello大小
三、了解EFF
1.安装nasm
2.检验nasm是否下载成功
3.查看nasm编译hello的大小
比较原来的
四、了解实际程序是如何借助第三方库函数完成代码设计
1.在 win10 系统中,“控制面板”–>“程序”—>“启用或关闭Windows功能”,启用 “telnet client” 和"适用于Linux的Windows子系统"(后面会使用)。 然后打开一个cmd命令行窗口,命令行输入 telnet bbs.newsmth.net,以游客身份体验一下即将绝迹的远古时代的 BBS (一个用键盘光标控制的终端程序)。
2. 在Ubuntu中用 sudo apt-get install libncurses5-dev 安装curses库,请说明 头文件(比如curses.h)和库文件都被安装到哪些目录中;
A:输入命令和密码
等待几秒
B:查看curses.h的位置
3.请参考 “Linux 环境下C语言编译实现贪吃蛇游戏,用gcc编译生成一个终端游戏,体会curses库如何被链接和使用。
A:建立文件
B:运行
五、参考链接
GCC编译器背后的故事
Linux 环境下C语言编译实现贪吃蛇游戏
linuxGCC常用命令.pdf
用gcc生成动态库和静态库
静态库.a与.so库文件的生成与使用