Ubuntu下的gcc编译器操作

  • 一、用gcc生成静态库和动态库
  • 二、gcc常用命令的操作及as汇编编译器的操作
  • 三、Linux第三方库函数的使用
  • 1.部分curses函数的功能
  • 2.通过telnet访问BBS
  • 3.curses库的安装
  • 4.Linux 环境下C语言编译实现贪吃蛇游戏
  • 总结


一、用gcc生成静态库和动态库

1.建立sub2.c

Ubuntu编译Python ubuntu编译器_linux


2.进入sub2.c

Ubuntu编译Python ubuntu编译器_linux_02


3.编写代码保存退出

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_03

int x2y(int c,int d)
{
   int e;
   e=c*d;
   return e;
}

4.进入main.c

Ubuntu编译Python ubuntu编译器_ubuntu_04


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

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_05


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

Ubuntu编译Python ubuntu编译器_可执行文件_06

Ubuntu编译Python ubuntu编译器_linux_07


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

Ubuntu编译Python ubuntu编译器_linux_08


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

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_09


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

Ubuntu编译Python ubuntu编译器_linux_10


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

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_11


12.运行main

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_12


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

Ubuntu编译Python ubuntu编译器_可执行文件_13


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

Ubuntu编译Python ubuntu编译器_linux_14


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

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_15


16.运行main1,报错

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_16


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

Ubuntu编译Python ubuntu编译器_可执行文件_17


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

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_18


注:经对比,大小无明显差别。

二、gcc常用命令的操作及as汇编编译器的操作

1.新建test.c,进入test.c

Ubuntu编译Python ubuntu编译器_linux_19


2.输入代码

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_20

#include<stdio.h>
int main(void)
{
  printf("Hello World\n");
  return ;
}

3.用gcc命令直接编译

Ubuntu编译Python ubuntu编译器_linux_21


4.预处理

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_22


5.编译为汇编代码

Ubuntu编译Python ubuntu编译器_可执行文件_23


6.汇编为.o文件

Ubuntu编译Python ubuntu编译器_ubuntu_24


7.链接为可执行文件

Ubuntu编译Python ubuntu编译器_linux_25


8.执行可执行文件test

Ubuntu编译Python ubuntu编译器_linux_26


9.三种检错命令

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_27


Ubuntu编译Python ubuntu编译器_可执行文件_28


Ubuntu编译Python ubuntu编译器_ubuntu_29


10.编译为目标文件

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_30


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

Ubuntu编译Python ubuntu编译器_linux_31


12.运用size命令查看大小

Ubuntu编译Python ubuntu编译器_linux_32


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

Ubuntu编译Python ubuntu编译器_ubuntu_33


14.静态库链接

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_34


15.查看静态库大小

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_35


16.查看动态链接库

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_36


17.反汇编操作

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_37


Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_38


Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_39


18.新建一个asm文件

Ubuntu编译Python ubuntu编译器_可执行文件_40


19.进入asm文件

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_41


20.输入代码

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_42


21.编译nasm

Ubuntu编译Python ubuntu编译器_可执行文件_43


Ubuntu编译Python ubuntu编译器_ubuntu_44


22.执行可执行文件hello

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_45


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

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_46


Ubuntu编译Python ubuntu编译器_ubuntu_47


注:上图为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.打开控制面板

Ubuntu编译Python ubuntu编译器_ubuntu_48


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

Ubuntu编译Python ubuntu编译器_ubuntu_49


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

Ubuntu编译Python ubuntu编译器_linux_50


Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_51


4.打开cmd

Ubuntu编译Python ubuntu编译器_linux_52


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

Ubuntu编译Python ubuntu编译器_可执行文件_53


6.访问界面如下

Ubuntu编译Python ubuntu编译器_可执行文件_54

3.curses库的安装

1.在ubuntu命令行中输入sudo apt-get install libncurses5-dev

Ubuntu编译Python ubuntu编译器_可执行文件_55


2.头文件和库文件安装的目录

头文件和库文件分别安装在/usr/include/和/usr/lib/中。

4.Linux 环境下C语言编译实现贪吃蛇游戏

1.新建一个tcs.c文件

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_56


2.进入tcs.c

Ubuntu编译Python ubuntu编译器_ubuntu_57


3.输入代码

Ubuntu编译Python ubuntu编译器_可执行文件_58


代码来源:

http://www.linuxidc.com/linux/2011-08/41375.htm

4.编译tcs.c

Ubuntu编译Python ubuntu编译器_Ubuntu编译Python_59


5.执行可执行文件tcs

Ubuntu编译Python ubuntu编译器_gcc/gdb编译调试_60


6.执行结果如图

Ubuntu编译Python ubuntu编译器_linux_61

总结

这次的实验让我熟悉了Linux下的gcc的各种基本操作,跟着指导书走,一切操作都还是比较顺利,学到了很多知识。