games101【作业0上】:超详细的MacOS环境搭建

2,565 阅读2分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第2篇文章,点击查看活动详情

一、安装 Homebrew

1.1. 检查是否安装成功

如果从来没有安装过的朋友可以直接跳过本节,忘记自己是否安装的朋友可以在mac终端上键入命令brew 来查看。当出现下图时,则表明该你的 Mac 上已经安装过Homebrew,可以直接跳到第二章来配置开发环境。

image.png

如果显示 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 --install or 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 image.png

【补充】

  • 可以在终端输入 echo $SHELL 查看当前使用的脚本类型

image.png

  • 切换成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)"
  • 按照提示完成安装即可。

image.png

二、配置开发环境

2.1. 安装编译软件

2.1.1. gcc的安装

  • 命令
    brew install gcc
    
    成功的话,你讲看到类似下图的样子。

image.png

  • 错误解决方式

    如果在执行上述命令的时候没有发生任何错误,那么你很幸运,说明你的网络,以及之前的安装都没有任何问题。但是如果你没有那么幸运,那么就一起来看看下面的解决方式吧~

    如果出现下面的错误,那么请等待网络变好,或者尝试如下命令,对你的brewhome进行更新

    image.png

    rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core;
    brew update
    

    更新之后,顺利的话你就可以看到下面的样子,然后继续回到最终安装gcc吧。

image.png

  • 简介

    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. 必要插件安装

image.png

image.png

image.png

image.png

四、导入作业0

4.1. 编译源文件

  • 将官网下载的作业放到你喜欢的文件夹下,此处我把他们放到了/Users/gd/Documents/Proj/Games101/homework0/这个路径下,这里包括老师给到的两个文件,如下所示:

image.png

  • 修改文件中的 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文件夹下。

      image.png

      • 当前目录并非系统文件夹,我们应该将其链接到系统文件夹/usr/local/include下,我这里已经链接好了,如下所示。如果没有链接好可以尝试brew link --overwrite eigen完成链接操作。所以之后在安装新的库时,都可以使用brew info xxx 来看一下自己的库安装在何处,留意一下是否链接到系统目录"/usr/local/include",如果没有记得链接一下。

      image.png

    • 接下来通过在命令行终端键入如下命令,完成编译

      cd /Users/gd/Documents/Proj/Games101/homework0
      mkdir build 
      cd build 
      cmake ../ 
      make
      

    image.png

    【注意】
    • 其中cmake ../ 意为使用 .. /CMakeLists.txt 文件作为起始点在当前目录中生makefile . 
    • make 命令,在此之后执行,使用生成的 makefile 作为输入构建程序 .

image.png

4.2. 运行编译好的文件

  • 打开 Visual Studio Code
  • 点击下图 Open,选择工程目录,这里就是homework0所在目录

    image.png

  • 得到下图界面

    image.png

  • 运行代码

    image.png

  • 选择下图框起来的C++(GDB/LLDB)

image.png

  • 然后进行配置 launch.json 文件,具体配置方式可以参考 4.2.1.的第四步。

4.2.1. GDB 调试代码

到这里我们补充一下配置 VSCode 使用 GDB 调试作业代码的方法:

除了上述方式,我们还可以点击边栏左侧的 Launch&Debug 按钮来到配置界面。如果没有配置过 Launch&Debug 配置的话,应该得到和下图一致的界面。

  • 点击 蓝色的 Run and Debug 按钮 下方的 create a launch.json file 链接,会在右侧打开一个下拉列表

    image.png

  • 类似下图

    image.png

  • 在右侧的列表中选择 C++ (GDB/LLDB) 得到类似下图的结果(即新建了一个新的 launch.json 文件)

    image.png

  • 将光标放在图中configuration的[]中,点击Add configration

    image.png

  • 在接下来弹出的选项中,选择C/C++:{lldb}启动

    image.png

  • 然后就可以看到如下代码

    image.png

    下面来一起看一下里面的参数。

    以下属性对于每个启动配置都是必需的:

    • type 用于此启动配置的调试器类型。例如,每个安装的调试扩展都引入一个 type: 例如,node 用于内置的 node 调试器,或者 php 和 go 扩展 dephp和go。
    • request 此启动配置的请求类型。目前支持launch 和 attach
    • name 在Debug启动配置下拉菜单中显示的对读者友好的名称。

    其他属性:

    • program 启动调试器时要运行的可执行文件或文件。具体的需要键入运行时启动的程序路径,${workspaceFolder} 为工程目录,表示当前 VSCode 打开的文件的根目录。以作业0为例,这里先配置成

      "program": "${workspaceFolder}/build/main",
      

      可以参考我的可执行文件的实际位置,来配置你的路径哦~

      image.png

    • args:表示启动程序时传递给程序进行调试的参数。可以为空。可以根据需求以后配置。

    • cwd: 表示用于查找依赖项和其他文件的当前工作目录。一般来说都是在 build/ 下运行,所以配置一般都是

      "cwd": "${workspaceFolder}/build",
      
  • 配置完成并保存后,你就可以看到如下界面,然后点击下图点击左上方的绿色三角按钮开始调试运行,点击绿色按钮右侧的齿轮按钮可以直接打开刚才配置的 launch.json 文件。

    image.png

  • 最后在调试控制台(DEBUG CONSOLE),你将可以看到下面的运行结果,成功完成配置。

    image.png

恭喜你成功完成了配置🎉,下面就可以开始愉快的写作业了~