OS X EI Capitan(10.11.6)执行brew upgrade cmake 升级到cmake-3.14.2/cmake-3.17.3报告错误“make: *** [all] Error 2”

查看日志/Users/xxxx/Library/Logs/Homebrew/cmake/02.make,内容如下:

执行如下命令:

可以看到详细的错误信息如下:

关键是下载源代码,然后执行如下编译命令,是可以编译通过的,如下:

由此可以断定,不能编译通过的原因是 HomeBrew 自身环境变量导致的问题。

通过比较两份日志的差异,可以看到两者使用的CC编译器存在差异。

差异部分的内容如下:

观察环境变量如下:

可以看到路径信息中优先使用了/usr/local/Homebrew/Library/Homebrew/shims/mac/super
路径中的 CC,正是这个路径设置导致编译失败(从很早期版本升级到之后会存留这个路径设置)。

因此我们在安装软件的时候,要求环境变量使用系统环境变量即可(通过设置 --env=std 参数)

由于 HomeBrew 已经不支持 OS X EI Capitan(10.11.6) ,因此默认的 XCode自带的 clang++ 止步于 Clang++8.0 这样导致对于 C++ 的支持已经跟不上了,尤其是最近更新的一些代码,很多代码需要 C++14的支持。

解决方案是安装 GCC ,然后重定义CC/CCX位置,如下:

对于numpy-1.18.5来说,安装的时候报错

还是使用pip安装吧

参考链接


发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注