1、打开终端

2、输入以下命令进入vim编辑器:

vim a.c

3、进入编辑器后按i进入insert模式,然后键入以下代码:

#include<stdio.h>
int main(){ printf("\nhelloWorld!\n\n"); return ; }

4、按ESC退出编辑模式,然后键入:wq,退出并保存刚编辑好的a.c

5、在终端中输入以下代码,把a.c编译为可执行文件

gcc a.c -o a

6、输入./a然后回车,就可以看到程序a.c的执行结果:在终端打印出hello World!这句。

MacBook-Pro-:~ mac$ ./a

helloWorld!

MacBook-Pro-:~ mac$

注意:以上的第5步的代码其实是由四步组成的:

(1)预处理:使用-E生成.i文件:

gcc -E a.c -o a.i

(2)汇编:使用-S生成.s文件:

gcc -S a.i -o a.s

(3)编译:使用-c生成.o文件:

gcc -c a.s -o a.o

(4)连接:使用-o生成可执行文件:

gcc a.o -o a

MAC中使用Vim和GCC编译C程序的更多相关文章

  1. GCC编译C程序源代码

    编译简单的 C 程序 C 语言经典的入门例子是 Hello World,下面是一示例代码: #include <stdio.h>  int main(void)  {     printf ...

  2. gcc 编译 c++ 程序(转载)

    单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include <iostream& ...

  3. Mac中使用port升级gcc版本

    Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...

  4. gcc编译C++程序

    gcc动态编译和静态编译方法 一.单个源.cpp文件生成可执行程序下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #i ...

  5. 转:gcc编译C++程序

    转:http://blog.csdn.net/liujiayu2/article/details/49864381 单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个 ...

  6. 【LinuxC】GCC编译C程序,关闭随机基址

    1.编译.链接和运行程序 C代码示例: #include <stdio.h> #include <stdlib.h> int main() { printf("hel ...

  7. windows10 gcc编译C程序(分步编译)

    下面演示gcc对C源程序的分步编译过程: 1. 编译(Compile) gcc hello.cpp -c # 生成hello.o,目标文件名字和源文件名字一样,VC编译会生成.ojb文件,gcc编译器 ...

  8. windows10 gcc编译C程序(简单编译)

    参考:http://c.biancheng.net/view/660.html gcc可以一次性完成C语言源程序的编译,也可以分步骤完成:下面先介绍一次性编译过程. 1.生成可执行程序 cd xxx ...

  9. Mac中安装Vim7.4

    Mac上的Vim Mac本身其实是预装了Vim的,但是目前的系统中都是Vim7.3版本的,而最新的Vim已经是7.4版了,因此为了能够使用最新版的vim,必须要对Mac中的vim要么升级,要么重装.在 ...

随机推荐

  1. Python基础学习1---函数

    Python函数篇 函数是重用的程序选, 他们允许给一块语句一个名称,然后可以在你的程序的任何地方是使用这个名称任意多次地运行这个语句块.这个就被称为 调用  函数.比如内建了很多高效的函数 如len ...

  2. 在MFC对话框中添加状态栏

    如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图). 1. 首先,打开在资源视图的String Table并添加两个ID: ...

  3. Chapter 1 First Sight——16

    I drove around the school, following the line of traffic. 我开车绕学校随着交通线. 我开车穿过校园,紧跟着大部队. I was glad to ...

  4. logstash安装配置

    vim /usr/local/logstash/etc/hello_search.conf 输入下面: input { stdin { type => "human" }} ...

  5. JAVA Timer定时器使用方法(二)

    JAVA  Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...

  6. dedecms mysql连接错误:#1040 - Too many connections

    mysql能登进去一下,点任何链接又跳出来,然后就登不上了 解决办法:检查mysql所在盘是否还有空间

  7. Fastjson简单使用方法

    一.简单数据的序列化 pubic class UserInfo implements Serializable{ private String name; private int age; publi ...

  8. HDU 5547 暴力

    Sudoku Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...

  9. post(c),get(r),put(u),delete(d)

    http://whui0110.iteye.com/blog/1682388看这个帖子知道人们常说的幂等意思就是可以重复执行,结果是一样的:帖子中说put(update)是幂等的,其实update v ...

  10. sqlDataAdapter的FillSchema用法

    摘自于网络:http://blog.csdn.net/bupt_zoucq/article/details/6653385 FillSchema是用来向DataTable中填入详细的元数据信息的,例如 ...