使用gcc编译简单的程序

您所在的位置:网站首页 怎么用gcc编译器输出内容 使用gcc编译简单的程序

使用gcc编译简单的程序

2023-10-03 23:43| 来源: 网络整理| 查看: 265

一、简单程序搭建

使用虚拟机软件VMware,环境为:Ubuntu18.04。Terminal终端编写代码如下:

mkdir film1 //新建文件夹film1 cd film1 //进入film1文件夹 vi sub1.c //新建.c文件 vi sub2.c vi main.c

sub1.c内容如下:

float x2x(int a,int b) { return a+b; }

sub2.c内容如下:

float x2y(int a,int b) { return a*b; }

main.c内容如下:

#include #include"sub1.c" #include"sub2.c" int main(void) { int a=2,b=4; printf("x2x=%f\n",x2x(a,b)); printf("x2y=%f\n",x2y(a,b)); return 0; }

使用gcc命令编译main.c

gcc main.c //gcc编译文件 ./a.out // ./运行文件

结果: 在这里插入图片描述

二、使用ar工具生成静态和动态库文件

1、使用gcc将三个.c文件编译为.o文件

gcc -c sub1.c gcc -c sub2.c gcc -c main.c

结果如下: 在这里插入图片描述 2、使用ar工具生成 .a 静态库文件

ar -crv test1.a sub1.o sub2.o //将sub1.o和sub2.o生成静态库文件test1.a gcc -o a.out main.c -L. test1.a //将静态库文件连接到主函数 ./a.out //查看输出

结果如下: 在这里插入图片描述 3、使用ar工具生成 .so 动态库文件

gcc -shared -fPIC -o test1.so sub1.o sub2.o //将sub1.o和sub2.o生成动态库文件test1.a gcc b.out main.o test1.so //将静态库文件连接到主函数 ./b.out //查看输出

结果如下: 在这里插入图片描述

三、直接编译hello.c与使用nasm 编译hello.asm文件对比

1、新建目录film2,编辑文件test.c。内容如下:

//test.c #include int main(void) { printf("Hello World!\n") return 0; }

2、编辑test.c文件

gcc -E test.c -o test.i //预编译 gcc -S test.i -o test.s //编译 gcc -c test.s -o test.o //汇编 gcc test.o -o test //连接 ./test

结果如下: 在这里插入图片描述 3、使用nasm编译hello.asm,首先下载nasm。

sudo apt install nasm //下载nasm nasm -f elf64 hello.asm //编译 ld -s -o hello hello.o //连接

如图所示: 在这里插入图片描述 4、比较两个文件大小 nasm 生成文件大小: 在这里插入图片描述

gcc生成文件大小:在这里插入图片描述

四、Windon10进入bbs系统

1、Linux 系统中终端程序最常用的光标库(curses)的主要函数功能,基本函数名称及功能。 2、进入控制面板,程序,启用或关闭windows功能,启用 “telnet client” 和"适用于Linux的Windows子系统"。 在这里插入图片描述 在这里插入图片描述 3、输入cmd进入shell画面,输入下面代码进入BBS:

telnet bbs.newsmth.net

画面如下:在这里插入图片描述

五、gcc编辑弹球游戏

贪吃蛇代码:https://blog.csdn.net/psc0606/article/details/9990981 1、下载光标库(curses)

sudo apt-get install libncurses5-dev

2、新建文件夹,新建文件

vim game.c gcc game.c -lcourses -o game ./game

结果如下:在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3