最近在学习计算机图形学,需要配置C++环境和opencv来编译作业代码,于是我就开始折腾下M1如何编译C++代码了。

安装依赖 ​

首先你需要安装Mac下的包管理器 homebrew,官网有详细的安装教程,我就不赘述了。

接下来安装C++相关的依赖:

bash
brew install gcc cmake

然后是图形学相关的依赖:

bash
brew install eigen opencv

配置头文件路径 ​

This script installs Homebrew to its preferred prefix (/usr/local for macOS Intel, /opt/homebrew for Apple Silicon and /home/linuxbrew/.linuxbrew for Linux) so that you don’t need sudo when you brew install.

homebrew 官网有描述M1的安装路径更改到 /opt/homebrew 了。所以我们需要指定头文件路径,这里我们指定到 /opt/homebrew/include。

bash
export CPATH=/opt/homebrew/include
export LIBRARY_PATH=/opt/homebrew/lib

把上述代码添加到 .bashrc 文件,如果你使用的是 zsh 请添加到 .zshrc 文件。

检测头文件路径 ​

bash
gcc -x c++ -v -E /dev/null

如果输出结果有 /opt/homebrew/include 就说明配置成功了。

总结 ​

配置环境看似简单,但找到解决方案需要花不少时间,这里主要问题是M1下安装路径不同,所以我们需要指定头文件路径。

参考 ​

Installing a C/C++ library with homebrew on M1 Macs

在 Mac OS 下配置 GAMES101 开发环境

View default include path of C headers in Mac OS X by gcc -v?