linux下使用gcc入门(纯小白友好版)
安装gcc:sudo apt-get install gcc(之后输入密码即可)
创建目录,编辑代码
绝对路径的方式进入usr目录: cd /home
- /home/:是普通用户的主目录,在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在/home/ 下建立一个和用户名相同的目录。如:user1的主目录就是/home/user1/。
- 创建用户名为user1的目录:sudo mkdir user1(输入密码即可)
- 进入user1目录:cd user1
- 建立存放代码数据的文件:mkdir codes
- 进入codes目录:cd codes
建立名为helloworld.c的文件:touch helloworld.c
编辑文件:vim helloworld.c
按i键开始编辑,输入代码(注意最后的‘;’)
#include<stdio.h>
int main(){
printf("%s\n","Hello World!")
};
按esc键退出编辑,输入“:wq!”并回车保存文件并退出:
查看文件内容:cat holleworld.c
分步进行1)预处理,2)编译,3)汇编,4)链接
(1)预处理:gcc -E -o helloworld.i helloworld.c
将包含(include)的文件插入源文件中,将宏定义展开、根据条件编译命令选择要使用的代码,最后将代码输出到一个“ .i ”文件中等待进一步处理。
helloworld.i文件部分内容:
(2)编译: gcc -S -o helloworld.s helloworld.i
把上面的C语言代码翻译成汇编语言,helloworld.s的部分内容如下:
(3)汇编:gcc -c -o helloworld.o helloworld.s
汇编是将汇编代码翻译成一定格式的机器代码,,在Linux系统上一般表现为ELF目标文件(OBJ文件),文件部分内容如下所示(用hexdump helloworld.o命令):
(4)链接:gcc -o helloworld helloworld.o
链接是将汇编生成的OBJ文件、系统库的OBJ文件、库文件链接起来,最终生成可以在特定平台运行的可执行程序。用ls命令可以看到文件夹中多了一个名为"helloworld"的文件:
注意:如果想一步操作(包括预处理,编译,汇编,链接)的话可以用:gcc helloworld.c (为指明输出文件,默认是a.out)或 gcc -o helloworld helloworld.c)
(5)执行可执行文件helloworld或a.out:
参考目录
https://blog.csdn.net/nyist_zxp/article/details/81429615
https://blog.csdn.net/childbor/article/details/97136401
https://blog.csdn.net/guoguo11191/article/details/8088356