如何在 macOS 下写 C++

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/supertian007/article/details/79605252

最近在用 C++ 做 PAT 的题目。

而我的华硕笔记本摔地上打不开了,于是只好拿 MacBook Pro 来做。

我开始以为用 macOS 系统写 C/C++ 应该方便简单,毕竟类 Unix 系统,对 C/C++ 应该很支持。

然而,碰到了一堆乱七八糟的问题,耽误了我合计 20 多个小时的时间。

我中途试过了几乎 Mac 下所有的 C++ 开发工具,XCode、CodeLite、CodeBlocks、Sublime……开始决定直接装一个虚拟机,里面放个 Windows 算了。

而且,macOS 装开发工具太麻烦了,感觉处处要科学上网,速度还很慢,耽误了我太多时间,各种问题层出不穷。

试了一堆方法之后,我还是决定用最不折腾的办法:iTerm2 + vim + g++ + lldb


iTerm2 的配置:没啥要配置的。

vim 的配置:

修改(如果没有就新建) vim 的配置文件 vi ~/.vimrc

syntax on
set mouse=a
set cindent
set tabstop=4
set shiftwidth=4
set nu

g++ 和 lldb 的配置:打开 XCode,他会升级一些开发工具,升级结束这些就自动有了。

g++ -vlldb -v 可以查看到当前版本。

➜  advanced g++ -v
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin17.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
➜  advanced lldb -v
lldb-900.0.64
  Swift-4.0

配置就是这些,下面说一下操作步骤。

首先,把代码要存放的目录安排好。我的存放逻辑是,~/code/pat/ 作为根目录,下面分别是 basic 和 advanced 两个目录,接着按分值再设置 15、20、25 三个目录。

/Users/tian/code/pat/basic/25

接下里开始做题,比如要做乙级的 1005 题。就在 /pat/basic/25/ 下,新建 1005 目录。进入目录后,新建一个 in 文件,把题目的样例输入复制粘贴进来,方便调试的时候不用每次都手动输入数据。

接着就用 vi main.cpp 来写代码了。

写完以后,在 normal 模式下,:w 保存。

接着 cmd+d,切分屏幕窗口。输入 g++ main.cpp -g 来编译。

如果程序有问题,可以根据他提示的行号修改。

如果没问题,就可以输入 lldb a.out,a.out 是编译自动生成的文件。

进入了 lldb 调试模式以后,按 r,如果程序正常运行,这样就会出现运行结果,例如:

1006 lldb a.out
(lldb) target create "a.out"
rCurrent executable set to 'a.out' (x86_64).
(lldb) r
Process 9113 launched: '/Users/tian/code/pat/advanced/1006/a.out' (x86_64)
SC3021234 CS301133Process 9113 exited with status = 0 (0x00000000)
(lldb)

补充:

一、lldb 常用调试命令。

详细的 lldb 命令可以看这篇文章

我常用的是下面这些:

  • r:运行,不加断点的话就直接运行结束。
  • b 33:在 33 行打断点,接着输入 r,程序就会在 33 行停下来。
  • n:程序运行到下一行。
  • c:程序运行到下一个断点。
  • p num:打印 num 变量的内容
  • br l:显示当前的所有断点及其id
  • br de 1:根据断点 id 来删除断点,而不是行号

猜你喜欢

转载自blog.csdn.net/supertian007/article/details/79605252