linux下使用gcc入门(纯小白友好版)

linux下使用gcc入门(纯小白友好版)

    • 安装gcc:sudo apt-get install gcc(之后输入密码即可)
    • 创建目录,编辑代码
    • 分步进行1)预处理,2)编译,3)汇编,4)链接
      • (1)预处理:gcc -E -o helloworld.i helloworld.c
      • (2)编译: gcc -S -o helloworld.s helloworld.i
      • (3)汇编:gcc -c -o helloworld.o helloworld.s
      • (4)链接:gcc -o helloworld helloworld.o
      • (5)执行可执行文件helloworld或a.out:
    • 参考目录

安装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
int main(){
    printf("%s\n","Hello World!")
};

按esc键退出编辑,输入“:wq!”并回车保存文件并退出:
linux下使用gcc入门(纯小白友好版)_第1张图片
查看文件内容:cat holleworld.c

分步进行1)预处理,2)编译,3)汇编,4)链接

(1)预处理:gcc -E -o helloworld.i helloworld.c

将包含(include)的文件插入源文件中,将宏定义展开、根据条件编译命令选择要使用的代码,最后将代码输出到一个“ .i ”文件中等待进一步处理。
helloworld.i文件部分内容:
linux下使用gcc入门(纯小白友好版)_第2张图片

(2)编译: gcc -S -o helloworld.s helloworld.i

把上面的C语言代码翻译成汇编语言,helloworld.s的部分内容如下:
linux下使用gcc入门(纯小白友好版)_第3张图片

(3)汇编:gcc -c -o helloworld.o helloworld.s

汇编是将汇编代码翻译成一定格式的机器代码,,在Linux系统上一般表现为ELF目标文件(OBJ文件),文件部分内容如下所示(用hexdump helloworld.o命令):
linux下使用gcc入门(纯小白友好版)_第4张图片

(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

你可能感兴趣的:(linux,linux,c语言,gcc/gdb编译调试)