如何在 mac 电脑上写 C?
问题描述
我是大一新生,刚学 C 语言,想运行一下自己写的 C,用的 Xcode,但是跟学校里电脑操作不一样,请问还有什么更好的软件吗?
简直了⋯⋯ 为了写一个十行的 C 程序,居然动用 Xcode,还建工程⋯⋯ 有你打开 Xcode 的时间我都用 TextEdit 写好在 Terminal 里编译完了⋯⋯
题主你听我的,你的需求,根本没必要用 IDE,用 TextEdit 和命令行方便得多⋯⋯ 来,天天跟我做,每天五分钟(<--- 暴露年龄)。
- 打开 Terminal。你是纯小白,不会?按键盘你会吧?这两个键一块按

屏幕上会出现一个框,在里面输入 Terminal,会变成这样

如果不是这样你就按下箭头直到选中一个图标和这个一样的东西为止。这时你按下回车,屏幕上会出现一个白窗口里面有一些奇怪的字,那就是 Terminal
2. 在 Terminal 里输入下面这个然后回车。
xcode-select --install
然后跟着提示走就好。这样你就装好了 C 编译器。
3. 然后你就可以开始写程序了。先在随便一个地方创建一个目录,创建目录你会吧?然后在 Terminal 里打入 “cd” 这两个字母,然后按一下空格,别按回车。接着把你刚创建的目录拖到 Terminal 的窗口里,最后在 Terminal 里按下回车。
太复杂了?有视频。
https://www.zhihu.com/video/1055728265662205952 你的 Terminal 跟我的不太一样,没关系,步骤是完全一样的。
4. 打开 TextEdit,也就是记事本。这个你会吧⋯⋯?不会的话方法和你打开 Terminal 是一样的。然后在里面写你的 C 程序。写好了以后保存到你刚创建的那个目录里。这个你会吧?我实在是懒得录视频了⋯⋯ 现在我假设你存成了 test.c 这个文件名。
在 TextEdit 这里有个小坑,如果你的 TextEdit 窗口是这样的:

你要按一下这个菜单,

把 TextEdit 窗口变成这样:

5. 回到 Terminal 窗口,输入
cc test.c
然后回车。这样你的 C 程序就编译完了。想运行刚编译的程序可以输入
./a.out
然后回车。
然后就完了。就这么简单,我也想不出比这个更简单的事了,反正比创建那个什么 Xcode 工程简单多了⋯⋯
如果这些你都不能完成的话,请去附近的老年大学进修。
如果你完成了的话,有很多好玩的事可以做。比如把 TextEdit 换成一个正经的代码编辑器,比如 VSCode。如果你想挑战手指灵活性的话可以换成 Vim 或者 Emacs⋯⋯
很久以后的更新:完整过程视频
两次作业的示范 https://www.zhihu.com/video/1165293546462007296 我简单看了一下评论⋯⋯
有人说我不友善?喵喵喵?不是很明白。我觉得想更友善就只能飞过去手把手了……
有人说秀操作?装逼?How??? 我当年从 Ubuntu 4 就开始用 *NIX 了,我有 120KB 的 Emacs 配置,全是我自己写的。我用 TextEdit 和 cd 装逼⋯⋯?
有人说误导新手?喵喵喵?我想误导的话会直接让题主用 Emacs 的⋯⋯ 唯一有可能误导的情况是题主用的中文界面,那⋯⋯ 我也没办法,我不知道这些程序的中文名字叫什么,欢迎在评论指出。
我觉得有必要解释一下为什么推荐 TextEdit。这个问题其实是两个问题:
- 为什么不推荐 Xcode?IDE 隐藏了关于工具链的细节,但是却凭空增加了太多其他的细节。比如「工程」,目录下的各种奇怪文件,创建工程时的各种选项,各种不同的 build 类型,等等。我觉得对于题主的需求来说这个交换是不值的。至于 IDE 提供的各种编辑时的方便,只有当项目中函数和类很多时才有用,对题主来说,打 “pr” 补全成 “printf” 真不能算什么了不得的功能,初学 C 能用到的函数就那么几个⋯⋯ 另外你想一下,如果小白题主想把自己的程序拷给同学,他能否正确地找出应该拷哪个文件?能否正确的在 Finder 里找到这个文件?如果同学想把自己的程序拷给他,他能否正确地把文件添加到工程里并且正确地 build?
- 为什么不直接上 Sublime、VS Code、Atom(还有 Xcode)⋯⋯ 很简单,因为要下载。下载对于一个小白用户来说可能是极大的挑战。不要说小白了,对于你们这些囧乎人赢来说可能都是。还记得 2015 年的 XcodeGhost 么?不要好了伤疤忘了痛。不信你可以用你的爷爷奶奶测试一下,让他们尝试下载一个叫做「Sublime 编辑器」的东西,你看他们最后会给你下载个啥。而 TextEdit 的好处就是系统自带,不需要下载任何东西。
评论区挺能联想⋯⋯ 我没有说要题主学命令行、bash、Linux,没有任何这个意思。按 "c", "d" 和空格三下键盘很难么?
评论 294
CodeRunner 挺不错的
你第一个视频里的Terminal为什么那么好看!!
要引战了哦
[哼]本质上Xcode并不适合码C。Unix的atomic 思想让vim 甚至是emacs 这种编辑器写C是毫无问题的。GNU Linux就是在vi/emacs 上编出来的,不要看不起编辑器。我问你GNU Linux有过少行?为啥写100行1000行就必须换xcode或者M$的内存爆破器?
IDE爽啊
我都说了,进阶可以换 VS Code, Vim 和 Emacs.
这就好像你想做小葱拌豆腐,你需要全套厨具么?你只需要一个案板一个刀。你把全套厨具准备好的功夫我都做好十盘小葱拌豆腐了。你想做满汉全席的时候再准备厨具不迟。
写十行程序和写 1000 行程序用不同的工具,很奇怪么?我想写简单 test 程序的时候都只用 cat.
心疼大猪,明明为大一新生提了个最容易入门的建议却被强制“秀优越”
[安慰]另外完全不知道你说的「秀优越感和劝退」是从何而来。你知道怎么启动 Terminal,并不代表题主知道。你知道 rich text 和 plain text 的区别,并不代表题主知道。也许你没见过纯小白,但是我见过。
杠上开花了都。你吃四个包子饱了,为什么不直接吃第四个?
当然可以吃啦,问题能饱么,哈哈哈
大哥你也太能杠了
现在xcode也不烂了,应该是你用不好。
你觉得大一新生看得懂英文版?
像楼主这样,打开textedit,写代码,保存,打开terminal, 编译的时间,如果一个人还没打开一个xcode, 才真正应该去老年大学进修了
我去年刚换本。以前的本是 2011 MBP,启动 Xcode 大概要十分钟。
xcode-select 不依赖 Xcode.app
大一新生、入门(另外,我见过写、学c的没一个用xcode 的
可能是因为你没见过一个用mac的👀👀
友♂善的答主
[干杯]答主觉得自己在授人以渔其实还是喂饭,只不过答主这属于前空翻540度倒立喂饭,看客觉得有热闹看,对吃饭的人来说可能还不如普通喂饭。
哈哈哈,那本教材这是,这么友善!!!😂😂😂
友善度+1
这样对新手有帮助吗?
实话跟你说,新手就该这么做,入门真没必要折腾工具链
封装的越简单,帮你做的事情越多,使用过程中给你造成困扰的东西就会让你越迷糊。如果装个依赖,写几句cd,用个TextEdit您认为算是折腾环境。。。也太...
复杂的是工具的使用成本,您不会觉得编码过程中使用xcode 就是点点那几个按钮吧
这一套操作非常Windows
Xcode应该算是最好看的c/c++ editor了,用惯了再用其他的根本不习惯,怎么看怎么别扭
另外在用vs code加一个插件一键运行吧,现在问的这个问题太垃圾了
无论是搞开发还是搞教学,我都建议使用成熟的IDE。原因很简单:debug。学习gdb不是成本?难道一辈子暴力调试?越是小白,越要从简单的东西学起。
再说学习成本,我从命令行教,绝对路径相对路径要讲吧,ls mv cp rm mkdir等等要讲吧,稍微深一点,管道,重定向,grep,用户权限,shell脚本,chmod……等你这一套下来了,我用IDE学的运算符都上完了。
小白是来学C的,不是来学命令行的。
在mac上教C,直接上Xcode是首选,毕竟点两下等一会就好了,你这一套,是在Linux下教C的,不适合mac。
教命令行干嘛⋯⋯
另外就大学里教的那点 C,根本就用不着 debugger。而且在我的经验里,学术圈编程,不能用 debugger 的情形居多,除非你愿意 ssh 过去跑一个裸的 gdb⋯⋯
真的,一直是裸一个gdb,挺好的。
ide强加给人的东西太多了,真的不一定能提高工作效率,尤其是自己小的toy program,toy project。
膜一个,我只在迫不得已的时候才裸 gdb,一般就直接 printf 了⋯⋯
Write code
Command+x y enter
gcc/g++ file.c -o file
./file
天天跟我做每天5分钟的那位好像已经挂了。。。所以还要不要跟她做是个问题。。
哈哈哈哈对
写的挺好,何必跟杠精一般见识。
你打开vs的那段时间。我已经写好代码了
毕竟有些人。只会 hello world🌸🐔
这里都能看到IDE和编辑器的争论,泥萌都吃饱了撑的吗?
话说题主,为啥要黑我大Sublime 编辑器=-=
我的天,还要回到命令窗口运行?
不一定要回命令行窗口啊,你也可以建一个 Automator workflow 来运行程序⋯⋯
能够直接在编辑器当中输入命令,然后编译和执行吗?
除了记事本以外的编辑器都可以
确实不难 可能刚开始会自己吓自己感觉会很难 多联系几次 知道啥操作啥命令就好了 别人的方法或许很适合别人 要自己慢慢踩坑找个适合自己的 就像小马过河 所以你们那些说答主秀的、对新手不友好的 批量制杖吗 你们试过吗 坚持多久了
另外请问我用SpaceVim和SpaceEmacs还是在Windows环境下 处于鄙视链的最底层吗 在线等挺急的
其实好好推荐这种写代码的方式就可以了,没必要先踩Xcode一脚。这种说话的口吻本来就容易让人产生想反对的冲动。再说,我大一写C的时候,还是多亏Xcode有实时语法检测让我避开了好多坑,快速进入学习语言的状态;而不需要因为什么打错字,或者什么中英文符号的原因断了写代码的兴趣。我也不觉得需要避开什么自动补全,新手入门,能写就是了。
mac下应该用clang吧,然后用vim写程序,clang编译,gdb调试。
%d\n
你编译一下语法错误一样能显示出来。
不介绍这个就好像 java 不介绍 gradle 或者 maven,haskell 不介绍 stack 或者 cabel ……
根本不是给正经人用的(눈_눈)
我只想写个hello world然后你告诉我我必须得知道什么是工具链?能跑就完事了,初学讲一堆底层原理不是劝退?
都9102年了,还推荐新人用textedit写code。优秀!
你自己写的,失忆了?
你说得没错,ide确实隐藏了很多编译细节,但是对于新手而言,这些细节都无关紧要
我初学打开Xcode真的是不知所措
而且并不是所有人都是高配Mac。
只会IDE的小白的我开始每天五分钟👀👀
想问下答主是怎么把TextEdit变成代码编辑器的呢??
代码不就是文本么⋯⋯
为什么不推荐 Xcode?IDE 隐藏了关于工具链的细节,但是却凭空增加了太多其他的细节。比如「工程」,目录下的各种奇怪文件,创建工程时的各种选项,各种不同的 build 类型,等等。我觉得对于题主的需求来说这个交换是不值的。至于 IDE 提供的各种编辑时的方便,只有当项目中函数和类很多时才有用,对题主来说,打 “pr” 补全成 “printf” 真不能算什么了不得的功能,初学 C 能用到的函数就那么几个⋯⋯ 另外你想一下,如果小白题主想把自己的程序拷给同学,他能否正确地找出应该拷哪个文件?能否正确的在 Finder 里找到这个文件?如果同学想把自己的程序拷给他,他能否正确地把文件添加到工程里并且正确地 build
你这段话我不赞同,Xcode直接右键show in finder就行了,一个大一新生绝对知道show in finder是什么意思
dotnet更方便不用动环境变量可以在powershell里直接用csc
整个ide过来学c语言,可能只是想学语法,运算符优先级,写个hello world,根本没想去了解这些知识背后的原理。
我觉得答主说得好。[调皮]
我是真的愁⋯⋯
有啊,自带吧好像。
不对,我好像还忽略了gcc,算了,反正我也没有Mac
啥 error?
工程师大部分都这德行。以为会几个linux命令就日天日地日空气。其实在社会上他什么都不是。linux也好,windows也罢,都是个工具。能挣到钱才是王道。天天住着城中村,吃着猪脚饭,买不起房。就算你搞出了一个OS内核又怎么着? 能日天吗?
热心回答问题很好,但也要理解这些基本的东西很多人不懂是正常的。