zoukankan      html  css  js  c++  java
  • 实验四 Linux系统搭建C语言编程环境

    项目 内容
    这个作业属于哪个课程 班级课程链接
    这个作业的要求在哪里 作业要求链接
    学号-姓名 17041525-张思河
    作业学习目标 1)了解Linux系统C语言编程环境;2)学习Linux环境C语言开发步骤

    1.安装C语言开发环境

    sudo apt install build-essential   #ubuntu中安装C语言开发环境
    

    查看gcc版本

    gcc -v              #查看gcc当前版本信息
    

    查看make版本

    make -v       #查看make版本信息
    

    2、简单C语言练习

    (1).首先我们通过man命令查看帮助文档

    man gcc   #查看gcc的文档信息
    

    (2).命令行模式简单C语言编译链接等操作

    我们可以通过vim编辑器编写一个最简单的程序,如写一个输出自己学号的程序。先创建一个文件夹,然后进入该新创建的文件夹中。

    输入完源程序,接下来进行C语言编译的四个阶段,预编译,编译,汇编,链接

    a)预编译

    用vim打开test.i文件查看

    b)编译
    gcc -S test.i -o test.s  #生成汇编代码,由test.i文件生成test.s文件
    

    我们可以用vim打开test.s文件来查看内容,也可以用命令cat

    1)用vim打开test.s文件查看

    2)用cat命令查看test.s文件

    cat test.s #用cat命令查看test.s文件
    

    c)汇编
    gcc -c test.s -o test.o #将源文件生成一个目标文件,由test.s文件生成test.o文件
    

    objdump -d test.o  #objdump命令来反汇编该文件来分析test.o文件内容
    

    d)链接
    gcc test.o -o test   #生成可执行文件test
    

    可执行文件是二进制文件,同样需要用objdump命令来反汇编该文件分析文件内容

    objdump -d test   #objdump命令来反汇编该文件来分析文件内容
    

    e)运行
    ./test  #运行可执行文件test
    

    (3).多文件编译

    在exp4文件夹下面再建一个文件夹mfc(multi-files compile),并在该文件夹下面创建5个文件如下所示:

    每个文件的内容分别如下:

    main.c

    my1.h

    my1.c

    my2.h

    my2.c

    完成上面的代码输入,接下来进行编译,对于多个文件编译,可以一次编译链接生成可执行文件,也可以分别编译每个C文件,最后进行链接得到可执行文件。

    gcc my1.c my2.c main.c -o main1   #将多个文件一次编译链接生成可执行文件main1
    

    gcc -c    #对.c文件进行编译和汇编,但不链接。
    gcc my1.o my2.o main.o -o main2  #将多个文件链接生成可执行文件
    

    请说明两种方法的区别?

    答:第一种是直接一次编译链接生成可执行文件,第二种是分别编译每个C文件,最后进行链接得到可执行文件。
    

    接下来编写一个简单的Makefile,通过make工具帮助进行编译,在当前文件夹编写一个Makefile文件

    之后直接在终端输入make就可以进行编译链接操作

  • 相关阅读:
    字符串转义 保存到mysql
    vue项目引入背景图报Module not found: Error: Can't resolve './src/assets/img/bg2.jpg' in'xxx'错误
    vscode启动项目时报错:ERROR Failed to compile with 22 errors ,These relative modules were not found:
    整合阿里云视频播放器
    layer.open输入字数实时显示
    layer.prompt弹框
    解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
    微信扫码登录(OAuth2)
    阿里云短信服务
    单点登录(token,JWT)
  • 原文地址:https://www.cnblogs.com/zhangsihe/p/12599249.html
Copyright © 2011-2022 走看看