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 静态库文件

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

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

11.运行main

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

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

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

15.运行main1,报错
在这里插入图片描述
16.将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功能”

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.执行结果如图
在这里插入图片描述


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/lucario1/article/details/109035140

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值