【Linux】Linux编译器-gcc/g++使用

1.背景知识

1.预处理(进行宏替换)
2.编译(生成汇编)
3.汇编(生成机器可识别代码)
4.链接(生成可执行文件或库文件)

2.gcc如何完成

1.预处理(进行宏替换)
gcc -E hello.c -o hello.i
2.编译(生成汇编)
gcc -S hello.i -o hello.s
3.汇编(生成机器可识别代码)
gcc -c hello.s -o hello.o
4.链接(生成可执行文件或库文件)
gcc hello.o -o hello

3 .基本命令

[sxc_1@hcss-ecs-babb ~]$ ll
total 8
drwxrwxr-x 6 sxc_1 sxc_1 4096 Aug 26 14:42 106
-rw-rw-r-- 1 sxc_1 sxc_1  827 Aug  9 19:33 install.sh
[sxc_1@hcss-ecs-babb ~]$ cd 106
[sxc_1@hcss-ecs-babb 106]$ ll
total 16
drwxrwxr-x 2 sxc_1 sxc_1 4096 Jul 28 13:56 lesson5
drwxrwxr-x 2 sxc_1 sxc_1 4096 Aug  9 19:31 lesson7
drwxrwxr-x 2 sxc_1 sxc_1 4096 Aug 21 12:53 lesson8
drwxrwxr-x 2 sxc_1 sxc_1 4096 Aug 26 15:01 lesson9
[sxc_1@hcss-ecs-babb 106]$ cd lesson9
[sxc_1@hcss-ecs-babb lesson9]$ ll
total 40
-rwxrwxr-x 1 sxc_1 sxc_1  8360 Aug 26 15:01 mytest
-rw-rw-r-- 1 sxc_1 sxc_1   292 Aug 26 14:45 test1.c
-rw-rw-r-- 1 sxc_1 sxc_1    83 Aug 26 14:44 test.c
-rw-rw-r-- 1 sxc_1 sxc_1 16881 Aug 26 14:54 test.i
[sxc_1@hcss-ecs-babb lesson9]$ ./mytest
hello Makefile!

mytest是通过gcc编译出来的文件,查看mytest的命令是:./mytest

[sxc_1@hcss-ecs-babb lesson9]$ file mytest
mytest: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=fc0866a869c7fc36d511b2b5c3833034d4738738, not stripped

file + 文件名 可以查看文件的相关信息。

[sxc_1@hcss-ecs-babb lesson9]$ ldd mytest
	linux-vdso.so.1 =>  (0x00007fff9f582000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f95fb2d6000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f95fb6a4000)

ldd + 文件名可以查看该文件相关的动态库。

[sxc_1@hcss-ecs-babb lesson9]$ vim test1.c
[sxc_1@hcss-ecs-babb lesson9]$ make
gcc test1.c -o mytest1
[sxc_1@hcss-ecs-babb lesson9]$ ./mytest
hello Makefile!
:[sxc_1@hcss-ecs-babb lesson9]$ ./mytest1
Hello world[sxc_1@hcss-ecs-babb lesson9]$ 
Hello world[sxc_1@hcss-ecs-babb lesson9]$ make clean
rm -f mytest1

使用make实例。使用命令是:make;清理命令是:clean;
在这里插入图片描述
makefile文件里要写的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值