Ubuntu下的gcc编译器操作
一、用gcc生成静态库和动态库
1.建立sub2.c

2.进入sub2.c

3.编写代码保存退出

int x2y(int c,int d)
{
int e;
e=c*d;
return e;
}
4.进入main.c

5.修改main1.c,保存退出

6.用gcc分别编译为3个.o 目标文件


7.用ls命令查看是否生成.o文件

8.将x2x、x2y目标文件用 ar工具生成1个 .a 静态库文件

10.用 gcc将 main函数的目标文件与此静态库文件进行链接

11.用ls查看是否生成可执行文件main

12.运行main

13.在文件夹中查看main的大小

14.建立动态库libsub.so并用ls查看

15.连接动态库并用ls查看是否生成可执行文件main1

16.运行main1,报错

17.将libsub.so移动到/usr/lib后,再执行main1,正常执行

18.在文件夹中查看main1的大小

注:经对比,大小无明显差别。
二、gcc常用命令的操作及as汇编编译器的操作
1.新建test.c,进入test.c

2.输入代码

#include<stdio.h>
int main(void)
{
printf("Hello World\n");
return ;
}
3.用gcc命令直接编译

4.预处理

5.编译为汇编代码

6.汇编为.o文件

7.链接为可执行文件

8.执行可执行文件test

9.三种检错命令



10.编译为目标文件

11.将目标文件与动态库链接

12.运用size命令查看大小

13.运用ldd命令查看动态库链接

14.静态库链接

15.查看静态库大小

16.查看动态链接库

17.反汇编操作



18.新建一个asm文件

19.进入asm文件

20.输入代码

21.编译nasm


22.执行可执行文件hello
23.比较可执行文件的大小


注:上图为nasm的可执行文件,下图为C代码编译生成的可执行文件。
三、Linux第三方库函数的使用
1.部分curses函数的功能
int insch(chtype ch); //插入ch,右移
int insertln(void); //插入空白行,下移
int delch(void); //删除光标位置字符,左移
int deleteln(void) //删除当前行,上移
int beep(void); //发声
int flash(void); //闪屏
int clrtobot(void);//清除光标位置到屏幕结尾的内容
int clrtoeol(void);//清除光标位置到该行行尾的内容
2.通过telnet访问BBS
1.打开控制面板

2.点击“程序”,点击“启用或关闭Windows功能”

3.在"telnet client" 和"适用于Linux的Windows子系统"前面打钩,确定后重启计算机


4.打开cmd

5.在cmd中输入telnet bbs.newsmth.net

6.访问界面如下

3.curses库的安装
1.在ubuntu命令行中输入sudo apt-get install libncurses5-dev

2.头文件和库文件安装的目录
头文件和库文件分别安装在/usr/include/和/usr/lib/中。
4.Linux 环境下C语言编译实现贪吃蛇游戏
1.新建一个tcs.c文件

2.进入tcs.c

3.输入代码

代码来源:
http://www.linuxidc.com/linux/2011-08/41375.htm
4.编译tcs.c

5.执行可执行文件tcs

6.执行结果如图

总结
这次的实验让我熟悉了Linux下的gcc的各种基本操作,跟着指导书走,一切操作都还是比较顺利,学到了很多知识。
本文介绍了在Ubuntu系统中使用gcc编译器生成静态库和动态库的方法,包括常用命令的操作、as汇编编译器的使用,以及如何在Linux环境中利用第三方库函数实现贪吃蛇游戏。
854

被折叠的 条评论
为什么被折叠?



