近期刚刚放弃了Windows,投入了Ubuntu 的怀抱。今天就拿一个小小的案例来做一下C语言的编译和运行流程。额,顺便说一句。本文适合那些Linux新手,不适合老鸟哈。


看完本文可以学到什么?


  • 程序员编码神器Vim的简单使用
  • 自带编译器gcc的使用
  • 执行编译完成的程序

vim的简单使用


关于vim的使用,这里面的学问可谓是太深了,所以我就简单的写一些在这里用到的一些命令了。

首先:打开终端terminal。使用cd命令定位到我们将要操作的一个文件夹,我本人的是/home/mark/code/c/目录。然后就可以输入vim Hello.c.这样终端就会跳转到一个vim的编辑界面。

这时我们看到的是命令模式,我们要想对Hello.c文件进行编辑的话,就必须使用到插入模式。按下a 即可在光标位置进行编辑了。


在这里我就输入下面一段文字:

#include<stdio.h>

int main(){
    printf("Hello World!\n");
    printf("Hello C\n");
    printf("This is compilered by GCC in Ubuntu!");
}

gcc的简单的使用


下面我就来谈一谈本文用到的gcc的几个参数:

  • gcc -E // 预编译命令,可以将源文件进行预编译,生成.i结尾的预处理文件
  • gcc -c // 将预处理文件编译成目标代码(可执行) 以.o结尾
  • gcc -o // 这个命令一般会添加在上面命令的后边,意思是前两个命令完成后的结果输出到哪个文件中。

下面我们就来看一看本文的gcc处理:

mark@mark-pc:~/Code/C$ vim Hello.c
mark@mark-pc:~/Code/C$ gcc -E Hello.c -o Hello.i
mark@mark-pc:~/Code/C$ gcc -c Hello.i -o Hello.o
mark@mark-pc:~/Code/C$ gcc Hello.c -o Hello
mark@mark-pc:~/Code/C$ ./Hello
Hello World!
Hello C
This is compilered by GCC in Ubuntu!

结果展示


观察上述命令执行后的结果有两种方式。

一是到相应的目录下查看文件的具体信息,另外一个是使用命令行查看相关目录下的具体的信息。


第一种方式:



我们可以看到相关的四个文件:

  • Hello 可执行文件
  • Hello.c 源文件
  • Hello.i 预编译(预处理)文件
  • Hello.o 目标代码

第二种方式时使用命令行进行:

mark@mark-pc:/$ cd /home/mark/Code/C
mark@mark-pc:~/Code/C$ ls
Hello  Hello.c  Hello.i  Hello.o

我们同样可以得到上面这四个文件。


小总结


我本人也是刚刚接触Ubuntu,所以对这个操作系统还不是很熟悉。所以难免有些地方讲的不恰当或者不正确。本文也是为了提示那些和我一样在Ubuntu下的新手练习如何编程而写的指导性的博文。如果您发现了文章中有错误的地方,还望不吝赐教,也好让我们共同进步!

Linux下使用gcc编程初体验的更多相关文章

  1. Linux下的C编程实战

    Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性.而近年来, Linu ...

  2. linux下的c编程

    linux下的c编程 Linux 系统上可用的 C 编译器是 GNU C 编译器, 它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布.GNU  C 对标准 C 进行一系列扩展,以增强标准 ...

  3. Linux基础与Linux下C语言编程基础

    Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...

  4. LINUX下C语言编程基础

    实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...

  5. LINUX下C语言编程调用函数、链接头文件以及库文件

    LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...

  6. Linux下C语言编程基础学习记录

    VIM的基本使用  LINUX下C语言编程 用gcc命令编译运行C语言文件 预处理阶段:将*.c文件转化为*.i预处理过的C程序. 编译阶段:将*.i文件编译为汇编代码*.s文件. 汇编阶段:将*.s ...

  7. 【转】Linux基础与Linux下C语言编程基础

    原文:https://www.cnblogs.com/huyufeng/p/4841232.html ------------------------------------------------- ...

  8. Linux下TCP网络编程与基于Windows下C#socket编程间通信

    一.linux下TCP网络编程基础,需要了解相关函数 Socket():用于套接字初始化. Bind():将 socket 与本机上的一个端口绑定,就可以在该端口监听服务请求. Listen():使s ...

  9. Linux下C语言编程实现spwd函数

    Linux下C语言编程实现spwd函数 介绍 spwd函数 功能:显示当前目录路径 实现:通过编译执行该代码,可在终端中输出当前路径 代码实现 代码链接 代码托管链接:spwd.c 所需结构体.函数. ...

随机推荐

  1. c++中sizeof的用法

    /*测试sizeof() 测试环境:windows 7 64位操作系统 VS2012编译器 */ #include <iostream> using namespace std; int ...

  2. Cloud TPU Demos(TensorFlow 云 TPU 样例代码)

    Cloud TPU Demos 这是一个Python脚本的集合,适合在开源TensorFlow和 Cloud TPU 上运行. 如果您想对模型做出任何修改或改进,请提交一个 PR ! https:// ...

  3. SecureFX连接Linux后文件夹中文乱码问题解决(转)

    在使用SecureFX 连接Linux 时,发现文件夹显示乱码,一直尝试各种配置,现将方法整理一下!供大家参考! 首先在选项中设置字符编码为UTF-8 然后在全局选项中找到Securefx的配置文件 ...

  4. Zookeeper和Chubby【分布式协调系统】

    前言(对于协调系统来说其客户端往往是分布式集群) 大规模分布式系统需要解决各种类型的协调需求: 当集群中有新的进程或服务器加入时,如何探测到它的加入?如何能够自动获取配置参数? 当配置信息被某个进程或 ...

  5. south 命令学习

    south 命令学习 概述 在django某个版本之前,django自身提供一个创建数据库的命令-syncdb,它会根据model来创建相应的表,但是这个命令不好的地方在于,如果想要对model进行更 ...

  6. RHEL Linux常用指令

    查询已安装软件包 rpm -qa|grep * 安装软件 rpm -ivh * 查询Linux版本 uname -a lsb_release -a cat /etc/redhat-release ca ...

  7. freemarker的使用

    一:freemarker是什么? freemarker是一个模板引擎,基于定义的模板和数据生成对应的文本(HTML,xml,java等),是一个生成文本的工具. 二:freemarker的使用方法 ( ...

  8. pyinstaller 工具起步

    准备 依赖 pyinstaller下载 语法 核心命令 可选项 实战 md2htmlpy 使用pyinstaller 其他测试 -D选项 --icon选项 遇到错误怎么办 总结 继上次的那个Pytho ...

  9. makefile 和shell文件相互调用

    shell 文件内调用makefile文件:   #!/bin/bash cd ctemplate-2.1./configuresudo make -f installcd ../cd Templat ...

  10. SpringBatch配置数据库

    Spring Batch提供一个任务的仓库实现将任务元数据保存在数据库中,以便监控你的批量处理进程以及其结果. Spring Batch 数据库引擎支持的有:DB2,Derby, H2, HSQLDB ...