mac迁移新机引起的编译问题

背景

使用mac自带的迁移助理进行换机出现

描述

执行 pip install pycrypto 报告异常 /usr/include/sys/resource.h:197:2: error: unknown type name 'uint64_t' uint64_t ri_user_time; 实际是编译错误,我尝试重装clang 重装homebrew 全部失败。

解决方案

  1. 备份历史文件
$ sudo mv /usr/local/include  /usr/local/include_b
  1. 新建一个include文件夹
$ sudo mkdir /usr/local/include
  1. 移动gmp.h为安装llvm做准备
$ sudo cp /usr/local/include_b/gmp.h  /usr/local/include/ 
  1. 重新安装llvm(如果已安装需要先执行 uninstall操作)
$ brew install llvm
  1. 恢复历史文件(可选操作)
$ sudo mv  /usr/local/include  /usr/local/include_old 
$ sudo mv  /usr/local/include_b  /usr/local/include

推论

原始的/usr/local/include文件夹下有文件影响llvm安装,即使可以安装成功也会在编译其它文件的时候出错,于是可以新建一个空的include文件提取最少依赖文件安装llvm成功(步骤1-4)。此时已经可以正常使用命令 pip install pycrypto。 到了这里我在想如果把旧的include文件恢复还能正确安装编译文件吗?答案是肯定的,至于是否执行步骤5看自己选择了,我选择执行并观察后续会有什么问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。