zoukankan      html  css  js  c++  java
  • 实验四 Linux系统C语言开发环境学习

    实验四 Linux系统C语言开发环境学习

    项目 内容
    这个作业属于哪个课程 课程链接
    这个作业的要求在哪里 作业要求
    学号-姓名 17041401-黄兰兰
    作业学习目标 1、Linux系统下C语言开发环境搭建 2、学习Linux系统环境C语言开发过程

    实验内容

    1.安装c语言开发环境

    sudo apt install build-essential
    

    1).查看gcc的版本信息

    gcc -v
    

    2).查看make版本信息

    make -v
    

    2.简单C语言练习

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

    man gcc
    

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

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

    由于一开始我系统的vim编辑器的配置文件被重新更新了,所以中间一系列操作文件名就不一致了,下面我重新配置vim后,建了另一个文件test2.c

    cat test2.c
    
    a.预编译

    gcc -E test2.c -o test2.i #预编译
    test2.c #源程序文件
    test2.i #预编译后生成的文件

    vim编辑器编写test2.c

    用cat查看文件内容

    b.编译

    gcc -S test2.i -o test2.s
    test2.s #编译后生成的文件


    c.汇编

    gcc -c test2.s -o test2.o
    test2.o #目标文件即二进制文件

    通过objdump命令来反汇编该文件来分析文件内容

    d.链接

    gcc test2.o -o test2
    test2 #可执行文件

    用objdump命令来反汇编该文件分析文件内容

    objdump -d test2
    
    e.运行

    3).多文件编译

    在exp4文件夹下面再建一个文件夹mfc

    在该文件夹下面创建5个文件,文件名分别如下:

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

    cat main.c #查看main.c文件内容

    cat my1.h #查看my1.h文件内容

    cat my1.c #查看my1.c文件内容

    cat my2.h #查看my2.h文件内容

    cat my2.c #查看my2.c文件内容

    接下来进行编译,对于多文件编译,可以一次编译链接生成可执行文 件,也可以分别编译每个C文件,最后再进行链接得到可执行文件。

    请说明两种方法的区别?

    多个文件一起编译时:
    gcc my1.c my2.c main.c -o main1 将my1.c、my2.c、main.c分别编译后链接成main1可执行文件。
    分别编译各个源文件,之后对编译后输出的目标文件链接:
    gcc -c my1.c 将my1.c.c编译成my1.o
    gcc -c my2.c 将my2.c编译成my2.o
    gcc -c main.c 将main.c编译成main.o
    gcc my1.o my2.o main.o -o main2 将my1.o、my2.o、main.o链接成main2可执行文件
    

    由于之前的文件夹已存在可执行文件,故先将可执行文件删除,再编写一个简单的Makefile,通过make工具进行编译。

    make #根据Makefile文件编译源代码、连接、生成目标文件、可执行文件。

    查看Makefie文件内容

    Makefile #makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令

    make clean make clean #清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件

  • 相关阅读:
    Haskell Interactive Development in Emacs
    Access Java API in Groovy Script
    手工设置Eclipse文本编辑器的配色
    Color Theme of Emacs
    Gnucash的投资记录
    Special Forms and Syntax Sugars in Clojure
    Use w3m as Web Browser
    SSE指令集加速之 I420转BGR24
    【图像处理】 增加程序速度的方法
    TBB 入门笔记
  • 原文地址:https://www.cnblogs.com/huanglanlan/p/12582959.html
Copyright © 2011-2022 走看看