“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第2篇文章,点击查看活动详情”
一、安装 Homebrew
1.1. 检查是否安装成功
如果从来没有安装过的朋友可以直接跳过本节,忘记自己是否安装的朋友可以在mac终端上键入命令brew 来查看。当出现下图时,则表明该你的 Mac 上已经安装过Homebrew,可以直接跳到第二章来配置开发环境。
如果显示 command not found 那么就按照 1.2. 的步骤操作一下吧~
1.1.1. brew 的常见命令
在终端键入brew之后就可以查看常见命令了,下面我们简单来一起看一下
brew search [包名] # 查询
brew info [包名] # 查看包信息
brew install [包名] # 安装
brew uninstall [包名] # 卸载
brew update [包名] # 更新软件包
brew list # 查看已安装软件包列表
brew cleanup # 清理所有包的旧版本
brew config # 查看配置信息
brew -help # 查看帮助命令
brew services list # 列出正在运行的服务
brew services cleanup # 清除已卸载应用的无用的配置
brew services start [服务名] # 启动服务
brew services stop [服务名] # 停止服务
brew services restart [服务名] # 重启服务
1.2. 官网安装方式
(1)参考Homebrew官方文档,我们可以看到对于 macOS 需要确认如下信息:
- A 64-bit Intel CPU or Apple Silicon CPU (本机为 64位)
- macOS Catalina (10.15) (or higher) (本机为 macOS Catalina (10.15) )
- Command Line Tools (CLT) for Xcode (from
xcode-select --installor developer.apple.com/download/al…) or Xcode (appStore直接安装Xcode也可以哦) - The Bourne-again shell for installation (i.e.
bash)
(2)点击homebrew官网将看到如下的安装脚本,对于macOS 这个脚本将 Homebrew 安装到它的首选前缀 /usr/local
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
【注】国内有时候连接可能无法访问,因此我们可以尝试选用gitee上的源,具体步骤参考 1.3
【补充】
- 可以在终端输入
echo $SHELL查看当前使用的脚本类型
- 切换成bash,输入命令:
chsh -s /bin/bash - 切换成zsh,输入命令:
chsh -s /bin/zsh - 想知道自己系统安装了哪些 shell:
cat /etc/shells
1.3. 其他链接安装
- 在控制台键入如下的命令。
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
- 按照提示完成安装即可。
二、配置开发环境
2.1. 安装编译软件
2.1.1. gcc的安装
- 命令
成功的话,你讲看到类似下图的样子。brew install gcc
-
错误解决方式
如果在执行上述命令的时候没有发生任何错误,那么你很幸运,说明你的网络,以及之前的安装都没有任何问题。但是如果你没有那么幸运,那么就一起来看看下面的解决方式吧~
如果出现下面的错误,那么请等待网络变好,或者尝试如下命令,对你的brewhome进行更新
rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core; brew update更新之后,顺利的话你就可以看到下面的样子,然后继续回到最终安装gcc吧。
-
简介
gcc 是 GNU编译器集合(英语:GNU Compiler Collection)的缩写,是由GNU 项目生产的优化编译器,支持各种编程语言、硬件架构和操作系统。GCC 是一个工具链,用于编译代码,将代码与各种库依赖项连接,并为程序集,最后形成可执行文件。更多信息可以参考维基百科。
-
gcc 处理源代码过程
- 首先,GCC 预处理头文件,并消除注释。
- 接下来,标记代码,扩展宏,检测编译有无错误,然后准备编译。
- 将预处理后的文件发送到编译器。
- 编译器创建程序对象和控制流的语法树,并形成汇编代码。
- 然后汇编器将此代码转换为系统的二进制可执行代码。
- 接下来增加所需的外部库引用链接。
- 最终,形成可在目标系统中执行的程序。
2.1.2. cmake的安装
-
命令
brew install cmake -
简介
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译)过程。CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。更多的内容可以自行搜索学习(eg.百度百科),或者在今后的实践中不断加深理解。
2.2. 安装开发库
2.2.1. 安装 Eigen
-
命令
brew install eigen -
功能
Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,支持多种矩阵分解及其几何特征的求解,数值分析及其相关的算法。它不支持的模块生态系统,提供了许多专门的功能,如非线性优化,矩阵功能,多项式解算器,快速傅立叶变换等。
三、安装编辑器 vsCode
3.1. 安装 vscode
可以参考Visual Studio Code 写代码前的准备完成安装及相关操作。
3.2. 必要插件安装
四、导入作业0
4.1. 编译源文件
- 将官网下载的作业放到你喜欢的文件夹下,此处我把他们放到了
/Users/gd/Documents/Proj/Games101/homework0/这个路径下,这里包括老师给到的两个文件,如下所示:
-
修改文件中的 CMakeLists.txt文件,改成如下内容
cmake_minimum_required (VERSION 2.8.11) project (homework0) find_package(Eigen3 REQUIRED) include_directories("/usr/local/include") add_executable (main main.cpp)【重点注意】
-
project (homework0)修改为当前自己创建的项目名称 -
include_directories("/usr/local/include")此路径为我们用到的库的路径,这里就是我们前面安装的eigen库所在的路径- 在终端键入
brew info eigen,可以看到eigen库默认安装到了/usr/local/Cellar/eigen/3.4.0_1文件夹下。
- 当前目录并非系统文件夹,我们应该将其链接到系统文件夹
/usr/local/include下,我这里已经链接好了,如下所示。如果没有链接好可以尝试brew link --overwrite eigen完成链接操作。所以之后在安装新的库时,都可以使用brew info xxx来看一下自己的库安装在何处,留意一下是否链接到系统目录"/usr/local/include",如果没有记得链接一下。
- 在终端键入
-
接下来通过在命令行终端键入如下命令,完成编译
cd /Users/gd/Documents/Proj/Games101/homework0 mkdir build cd build cmake ../ make
【注意】- 其中
cmake ../意为使用.. /CMakeLists.txt文件作为起始点在当前目录中生makefile . make命令,在此之后执行,使用生成的 makefile 作为输入构建程序 .
-
4.2. 运行编译好的文件
- 打开 Visual Studio Code
- 点击下图 Open,选择工程目录,这里就是homework0所在目录
- 得到下图界面
- 运行代码
- 选择下图框起来的C++(GDB/LLDB)
- 然后进行配置 launch.json 文件,具体配置方式可以参考 4.2.1.的第四步。
4.2.1. GDB 调试代码
到这里我们补充一下配置 VSCode 使用 GDB 调试作业代码的方法:
除了上述方式,我们还可以点击边栏左侧的 Launch&Debug 按钮来到配置界面。如果没有配置过 Launch&Debug 配置的话,应该得到和下图一致的界面。
-
点击 蓝色的 Run and Debug 按钮 下方的 create a launch.json file 链接,会在右侧打开一个下拉列表
-
类似下图
-
在右侧的列表中选择 C++ (GDB/LLDB) 得到类似下图的结果(即新建了一个新的 launch.json 文件)
-
将光标放在图中configuration的[]中,点击Add configration
-
在接下来弹出的选项中,选择C/C++:{lldb}启动
-
然后就可以看到如下代码
下面来一起看一下里面的参数。
以下属性对于每个启动配置都是必需的:
- type 用于此启动配置的调试器类型。例如,每个安装的调试扩展都引入一个 type: 例如,node 用于内置的 node 调试器,或者 php 和 go 扩展 dephp和go。
- request 此启动配置的请求类型。目前支持
launch和attach。 - name 在Debug启动配置下拉菜单中显示的对读者友好的名称。
其他属性:
-
program 启动调试器时要运行的可执行文件或文件。具体的需要键入运行时启动的程序路径,${workspaceFolder} 为工程目录,表示当前 VSCode 打开的文件的根目录。以作业0为例,这里先配置成
"program": "${workspaceFolder}/build/main",可以参考我的可执行文件的实际位置,来配置你的路径哦~
-
args:表示启动程序时传递给程序进行调试的参数。可以为空。可以根据需求以后配置。
-
cwd: 表示用于查找依赖项和其他文件的当前工作目录。一般来说都是在 build/ 下运行,所以配置一般都是
"cwd": "${workspaceFolder}/build",
-
配置完成并保存后,你就可以看到如下界面,然后点击下图点击左上方的绿色三角按钮开始调试运行,点击绿色按钮右侧的齿轮按钮可以直接打开刚才配置的 launch.json 文件。
-
最后在调试控制台(DEBUG CONSOLE),你将可以看到下面的运行结果,成功完成配置。
恭喜你成功完成了配置🎉,下面就可以开始愉快的写作业了~