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看自己选择了,我选择执行并观察后续会有什么问题。

你可能感兴趣的:(mac迁移新机引起的编译问题)