若要在 Mac 的终端中编译并运行 C 源代码,你首先需要安装 Command Line Tools,里面包含有 GCC 编译器。安装方法为:

  1. 打开终端,输入 gcc。

  2. 如果你没有安装 Command Line Tools,会弹出一个窗口提示你安装,如图所示,点击安装即可。如果出现提示“no input files”,说明你已经安装了 gcc 编译器,可以直接开始编译程序。

  3. 安装完成后,定位至你需要编译的 C 源代码所在目录,即使用 cd 命令,例如我现在在根目录下,我的 C 代码位于 ~/Desktop/Self/C 文件夹中,我便可以在终端中输入以下命令,来跳转到我 C 代码的文件夹:

    1
    cd Desktop/Self/C

    效果如图:

    如果觉得输入文件夹地址比较繁琐,还有一种简单的方法,就是输完 cd 后在 Finder 中找到你的文件夹,直接把它拖到终端里,系统会自动生成这个文件夹的地址。

  4. 定位完成后,就可以开始编译了。例如,我要编译的文件叫 dot.c,那么就在终端中输入

    1
    gcc -Wall -g -o dot dot.c

    其中,-Wall 代表编译器在编译过程中会输出警告信息(Warning),比如有些变量你并没有使用,指针指向的类型有误,main 函数没有返回整数值等。这类信息虽然不是错误,不影响编译,但是很可能是程序 bug 的源头,也有助于你寻找代码中的错误,规范代码格式。所以建议每次编译时都加上 -Wall 参数。

    -g 代表编译器会收集调试(debug)信息,这样如果你的程序运行出错,就可以通过 gdb 或者 lldb 等工具进行逐行调试,方便找出错误原因。如果你不是百分之百确定你的程序毫无问题,建议加上 -g 参数。这样 debug 的时候会方便很多。

    -o 代表编译器会将编译完成后的可执行文件以你指定的名称输出到你指定的文件夹下。-o 的空格后的名称就是输出的文件的名称。例如我这里 -o 后是 dot,就是说 gcc 会在编译成功后在我的当前目录下生成一个叫 dot 的可执行文件。如果不加这个参数,每次编译后生成的可执行文件都会放在根目录下,名字叫做 a.out。每次编译成功后都会把上一次的 a.out 文件覆盖。所以建议加上 -o 参数,这样可以更加条理。

    最后一项便是你要编译的的源代码的名称了。我这里是 dot.c。注意加上后缀 .c。

  5. 输入完毕后按回车,如果编译没有任何问题,不会有任何提示。如果有问题,编译器会提示你问题是什么,在源代码的什么位置。如图所示:

    如果编译成功,你会发现在你的当前目录下多出了一个可执行文件,图标如图所示:

  6. 在终端中输入 ./可执行文件的名称 即可执行你的程序。例如,我输入

    1
    ./dot

    后,就可以执行程序了。如果提示你 Permission Denied,则是因为你没有赋予这个文件执行权限,需要在终端里输入

    1
    chmod u+x dot (这里是你自己的文件名)

    来使其可在你的账户下执行。

  7. 如果运行时出现 Segmentation Fault,则说明你的代码里有 bug 导致程序崩溃。

原文链接:https://zhidao.baidu.com/question/496563760717502324.html

在mac电脑的terminal里该如何运行c语言的更多相关文章

  1. MAC电脑修改Terminal以及vim高亮显示

    1. Terminal高亮显示 编辑~/.bash_profile文件,在末尾增加两行: export CLICOLOR= export LSCOLORS=exfxcxdxcxegedabagacad ...

  2. mac电脑上从终端命令行进入电脑里U盘目录下

    一般Mac电脑上u盘都在 Volumes 目录下,所以进入u盘可按如下命令: cd /Volumes/u盘名称

  3. Mac电脑C语言开发的入门帖

    本文是写给Mac电脑开发新手的入门帖,诸神请退散. C语言 C语言可说是电脑环境中的"镇国神器",从发明至今,虽然C语言的使用者缓慢的减少,但从当前市场应用情况看,尚无一台电脑能够 ...

  4. 【工具使用】mac电脑使用技巧

    本文地址 分享提纲: 1.  mac命令行和finder的交互 2. 一些mac的插件 3. 一些开发的配置 1.mac命令行和findder交互           1)命令行中打开当前文件夹: o ...

  5. Mac电脑如何读取Android手机上的文件

    问题 一般Android手机用usb数据线连接到windows操作系统的电脑上后,会自动将手机存储卡以移动存储的方式显示在电脑里. 但是如果操作系统是Mac的,就没有这个存储设备.问题来了,Mac电脑 ...

  6. mac电脑的使用

    1. control + command + a 截图 2. shift + command + g 前往 3.在 Mac OS X 中怎样获取当前文件夹的路径 原文网址:https://www.zh ...

  7. Mac电脑清理硬盘"其他"

    作为一个MacBook的使用者,无不感受到苹果对于系统和硬件的完美匹配. 苹果电脑不适合玩游戏,所以我只用它开发iOS使用.电脑里除了Xcode和常用办公软件与通讯软件以外,我没有装其他的任何大应用. ...

  8. 在 Mac OS X 终端里使用 Solarized 配色方案

    MacOS X 终端solarized配色 相信长期浸泡在终端和代码的小伙伴们都有一套自己喜爱的配色方案.以前一直在用简单.适合阅读的 Terminal.app 配色方案,换到 MacBook Pro ...

  9. Mac OS X Terminal 101:终端使用初级教程

    Mac OS X Terminal 101:终端使用初级教程 发表于 2012 年 7 月 29 日 由 Renfei Song | 文章目录 1 为什么要使用命令行/如何开启命令行? 2 初识Com ...

随机推荐

  1. scrcpy投屏android手机到电脑

    在mac os下 投票iPhone投屏是最简单不过了,只需要用Quicktime player就可以. 但是在mac下咱投屏android的手机呢,就需要用到scrcpy了. 1.打开终端,输入命令: ...

  2. django+celery+ RabbitMQ实现异步任务实例

    背景   django要是针对上传文件等需要异步操作的场景时,celery是一个非常不错的选择.笔者的项目就是使用了这个组合,这里就做一个备忘吧. 安装RabbitMQ   这个安装及使用我已经在前一 ...

  3. 动态、指针field-symbols初探

    DATA: BEGIN OF STRUC, COMP1 VALUE ', COMP2 VALUE ', COMP3 TYPE STRING VALUE 'bruce king', END OF STR ...

  4. SciPy 特殊函数

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  5. 深入了解memcached

    一.memcached如何支持高并发 Memcached使用多路复用 I/O模型(如epoll.select等).传统阻塞 I/O中,系统可能会因为某个用户连接还没做好 I/O准备而一直等待,直到这个 ...

  6. 非极大抑制睔PYTHON实现

    非极大抑制(Non-maximum suppression)python代码实现原创Butertfly 发布于2018-11-20 18:48:57 阅读数 293 收藏展开定位一个物体,最后算法就找 ...

  7. push 和 append 以及appendchild 用法和区别

    push() 给数组添加元素,并且返回数组长度 如 : arr.push('a') append() 是jq写法,添加节点到指定父级节点的子节点列表末尾 appendchild() 是append原生 ...

  8. git 创建分支并提交代码

    1.查看所有分支 git branch -a 2.查看当前分支 git branch 3.新建一个分支 git branch feature-xx 4.切换到新建分支上面 git checkout f ...

  9. springboot自动配置

    1.spring-boot-autoconfigure-2.1.7.BUILD-SNAPSHOT-sources.jar 2.如何查看项目中启动和未启动的自动配置: application.prope ...

  10. ionic实现滑动的三种方式

    在移动端受屏幕大小所限,展示内容很多的时候,就要使部分区域进行滑动.本文展示项目中所有到的几种方式,大家可以看自己的需求选择合适的滑动方式.实现滑动的基本原理,有两个容器A.B,假如A在外层,B在内层 ...