Linux下使用gcc编程初体验
近期刚刚放弃了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编程初体验的更多相关文章
- Linux下的C编程实战
Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性.而近年来, Linu ...
- linux下的c编程
linux下的c编程 Linux 系统上可用的 C 编译器是 GNU C 编译器, 它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布.GNU C 对标准 C 进行一系列扩展,以增强标准 ...
- Linux基础与Linux下C语言编程基础
Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...
- LINUX下C语言编程基础
实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...
- LINUX下C语言编程调用函数、链接头文件以及库文件
LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...
- Linux下C语言编程基础学习记录
VIM的基本使用 LINUX下C语言编程 用gcc命令编译运行C语言文件 预处理阶段:将*.c文件转化为*.i预处理过的C程序. 编译阶段:将*.i文件编译为汇编代码*.s文件. 汇编阶段:将*.s ...
- 【转】Linux基础与Linux下C语言编程基础
原文:https://www.cnblogs.com/huyufeng/p/4841232.html ------------------------------------------------- ...
- Linux下TCP网络编程与基于Windows下C#socket编程间通信
一.linux下TCP网络编程基础,需要了解相关函数 Socket():用于套接字初始化. Bind():将 socket 与本机上的一个端口绑定,就可以在该端口监听服务请求. Listen():使s ...
- Linux下C语言编程实现spwd函数
Linux下C语言编程实现spwd函数 介绍 spwd函数 功能:显示当前目录路径 实现:通过编译执行该代码,可在终端中输出当前路径 代码实现 代码链接 代码托管链接:spwd.c 所需结构体.函数. ...
随机推荐
- SpringBoot学习之SpringBoot执行器
在以往的分布式开发当中,各个服务节点的监控必不可少.监控包含有很多方面,比如说:内存占用情况,节点是否健康等.在spring-boot会给我们提供相关资源监控叫做spring-boot-actuato ...
- 笔记11 在XML中声明切面(2)
为通知传递参数 1.声明一个CompactDiscs接口.内部包含两个方法: show() 用于显示唱片的名字和艺术风格 playTrack(int number) 根据传入的磁道数播放相应磁道的音乐 ...
- Python中dict的功能介绍
Dict的功能介绍 1. 字典的两种函数(方法) 1. 字典的内置函数 包含关系 格式:x.__contains__(key)等同于key in x 例如:dic = {'ab':23,'cd':34 ...
- 谈谈Python中的decorator装饰器,如何更优雅的重用代码
众所周知,Python本身有很多优雅的语法,让你能用一行代码写出其他语言很多行代码才能做的事情,比如: 最常用的迭代(eg: for i in range(1,10)), 列表生成式(eg: [ x* ...
- Linux学习之CentOS(十八)-----恢复Ext3下被删除的文件与 使用grep恢复被删文件内容(转)
前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 删除文件 假设我们有一个文件名叫 'test.txt' $ls -il test.txt 15 -rw-rw-r– 2 roo ...
- session.save()返回值问题
正常都应该返回插入的主键 但是 如果你用sessionFactory来写就一定返回0 先科普下持久化数据库的三个状态方便下面理解 一次会话状态中,持久化对象经历以下三种状态:1 transient:对 ...
- 地址四级联动的vue组件
一.效果图如下: 二.思路 主要在vue中结合 mint-ui组件的Picker和Popup方法,负责对json地址进行展示: 三.代码地址 四.说明 address4.json最好是在点击父组件的地 ...
- Tomcat常用参数的配置
1.修改端口号 Tomcat端口配置在server.xml文件的Connector标签中,默认为8080,可根据实际情况修改. 修改端口号 2.解决URL中文参数乱码 在server.xml文件的Co ...
- C++笔记--1
一.namespace 命名空间 //定义一个命名空间 namespace spaceA { ; } int main(void) { //调用方式一 using namespace spaceA; ...
- Python中的转义
在Python交互式解释器中,输出的字符串会用引号引起来,特殊字符会用反斜杠(\)转义.如果遇到带有\的字符被当作特殊字符时,有以下两种处理方法:1.使用双反斜杠(\\)来转义2.使用原始字符串,方法 ...