方法一:brew管理工具安装
Homebrew是Mac开发包管理工具,类似于Linux的apt-get之类的,实它相当于开发软件界的 Appstore。借助该管理工具,可以自动化地安装软件包,它会自动安装依赖。
而借助 Homebrew, 需要做的仅仅是:
brew uninstall *
brew install *
打开终端,输入以下命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
注意:因网络的原因,可能会不成功,请多尝试几次,一直到成功安装。
中间会出现一个“Press RETURN to continue or any other key to abort”,请及时回车,并输入密码,不要傻等着…
安装成功后会显示“Installation successful!”,
此时输入: brew –version,显示
Homebrew 2.1.10
Homebrew/homebrew-core (git revision c7fb; last commit 2019-08-18)
开始借助brew安装Thrift了~
注意:不要使用sudo,会提示错误“Error: Running Homebrew as root is extremely dangerous and no longer supported.As Homebrew does not drop privileges on installation you would be giving all build scripts full access to your system.”
先brew update
再brew install thrift
如果不出问题,接下来就是耐心地等待…
时间很长,long long~
安装完成后,thrift位于 /usr/local/Cellar/thrift/0.12.0/bin目录下,可通过which thrift命令查看。

这种方式简单方便,傻瓜式的安装过程,适合thrift的简单测试使用,自动安装thrift的依赖库(boost、openssl等),这些软件包版本都是brew支持的版本。但是如果要修改源码用于实际项目中使用则需要通过源码来安装了~

方法二:Thrift源码编译安装
序号    工具            下载
1     Mac OS10.14       虚拟机
2     boost_1_70_0        下载
3     libevent-2.1.11-stable.tar  下载
4     thrift-0.12.0          下载
官网这里提供了源码编译的方法,该博文也进行了总结,需要依赖boost和libevent,而且有时候依赖包的版本还得对,还是挺麻烦的。不过,如果自己修改了thrift的源码,加入了针对自己项目的相关内容,源码方式编译安装就是必须的了!
按照官网提供的方法来尝试安装,可能遇到的问题:
1、 configure: error: Bison version 2.5 or higher must be installed on the system!
执行:bison -V查看版本,如果低于2.5则进行以下操作。
执行:brew install bison 安装最新版本的bison。
之后进入/usr/bin目录下,将mac默认的bison文件移除掉,将通过brew安装的bison拷贝到这里来。
cd /usr/bin
sudo mv bison bison111
sudo cp /usr/local/Cellar/bison/3.4.1/bin/bison ./
2、 sudo “Operation not permitted”
如果你的OX版本过高,会出现使用sudo权限也无法在/usr/bin目录操作的情况,需要首先获取权限,关闭Rootless。尝试关闭Rootless需要先进入恢复模式,在菜单“实用工具”中打开终端,输入:csrutil disable 重启系统即可。
3、 src/thrift/transport/TSSLSocket.cpp:43:10: fatal error: 'openssl/opensslv.h' file not found

解决方法
安装openssl:
brew install openssl
brew link openssl --force
重新执行configure命令,并添加参数(注意:命令写成一行):
./configure --prefix=/usr/local/ --with-boost=/usr/local --with-libevent=/usr/local LDFLAGS='-L/usr/local/opt/openssl/lib' CPPFLAGS='-I/usr/local/opt/openssl/include'
再次make 以及make install
make完成后会提示如下error:

make install完成后会提示如下error:

这些可以忽略…
安装成功后,thrift位于 /usr/local/bin目录下
查看thrift编译器版本:
thrift –version

查看thrift编译器路径:
which thrift

Include路径:/usr/local/include/thrift

Lib路径:/usr/local/lib

至此,Mac OS上的Thrift编译完成了~

我在Mac OS上使用Thrift C++构建一个Server,主要参照ThriftUsageC++,构建成功了,但是运行二进制执行文件时崩溃了~

在网上查找资料,尝试来尝试去,百思不得其解啊,哪位大神能给指导分享下,不胜感激!

记录Mac OS下编译Thrift库的更多相关文章

  1. MAC OS下编译apple跨平台的libevent库 (可延申到其它第三库)

    apple下的跨平台是指不同设备上的苹果系统以及同一系统在不同cpu体系的不同版本. 前面一篇介绍如何用ndk编译android跨平台的第三库,那样的方法却不能应用在apple上. 网上可以找到这么一 ...

  2. 在mac os下编译android -相关文章

    1. Mac OS X下编译Android源码 http://blog.csdn.net/bulreed/article/details/22783467 2.MAC OS 编译 Android源代码 ...

  3. Mac OS下 Redis2.6.14部署记录

    Mac OS下 Redis2.6.14部署记录 部署一个Redis作为缓存进行验证,记录部署过程. 官网:http://redis.io/,目前最近稳定版为2.6.14  解压,进入目录.按照READ ...

  4. 在 Mac OS 上编译 FFmpeg

    本文转自:在 Mac OS 上编译 FFmpeg | www.samirchen.com 安装 Xcode 和 Command Line Tools 从 App Store 上安装 Xcode,并确保 ...

  5. Mac OS下编写对拍程序

    介绍 对拍是信息学竞赛中重要的技巧,它通过一个效率低下但正确率可以保证的程序,利用庞大的随机生成数据来验证我们的高级算法程序.对拍最大的优势在于可以通过人力所不能及的速度和数量达到验证的效果.下面我们 ...

  6. wget Mac OS 下安装

    wget是一个从网络上自动下载文件的自由工具,支持通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理. 下面介绍如何在Mac OS 下安装Wget 下载最新版的 ...

  7. mac os 下搭建android开发环境

    mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...

  8. mac os 下的sublime --- 快捷键

    mac os 下的sublime ---列模式 http://www.oschina.net/question/249672_161413 触控板也可以的:左手同时按住 Option 和触控板左下角 ...

  9. MAC OS下免费下载YouTube

    YouTube上有很多不错的视频,你感兴趣的视频除了可以加入自己播放列表之外,还可以将其下载到本地收藏起来.推荐这款软件“Xilisoft Download YouTube Video for Mac ...

随机推荐

  1. luogu P1904 天际线

    分析 都知道是从左向右扫描 可是该维护什么,扫描什么? 注意想想怎么输出, 实际上它要的输出就是图形的轮廓,即每个突出块的左上节点的x,y 所以说, 我们可以把扫描线扫进的楼房放入线段树,扫出的楼房删 ...

  2. 外网穿透-natapp安装配置(windows)

    natapp官网 natapp服务器更新:全面支持HTTPS协议以及本地SSL证书,支持WSS协议.同时支持HTTP/2 WEB协议,支持微信小程序本地开发.全面自动支持泛子域名与访客真实IP地址. ...

  3. 杂项-FLAG

    题目 最低位隐写 50 4B 03 04 压缩格式zip的文件头 save bin 保存成zip格式 解压(WinRAR不能正常解压) 然后用vim打开(winhex也可以) hctf{dd0gf4c ...

  4. redixdb 基于redis 协议的实时key-value 存储

    redixdb 是一个基于redis 协议搞的一个实时key value 处理的轻量级应用,支持多种后端 存储模型. 以下是一个小版的容器镜像(官方的太大了) dockerfile   FROM go ...

  5. Codeforces Round #607 (Div. 1) Solution

    从这里开始 比赛目录 我又不太会 div 1 A? 我菜爆了... Problem A Cut and Paste 暴力模拟一下. Code #include <bits/stdc++.h> ...

  6. ElasticSearch使用RestHighLevelClient进行搜索查询

    Elasticsearch Java API有四类client连接方式:TransportClient.  RestClient .Jest. Spring_Data_Elasticsearch.其中 ...

  7. Java Scala获取所有注解的类信息

    要想获取使用指定注解的类信息,可借助工具: org.reflections.Reflections 此工具将Java反射进行了高级封装,Reflections 通过扫描 classpath,索引元数据 ...

  8. 通过Windows实现端口转发

    转自:月光博客<通过Windows实现端口转发> 这里介绍一个使用两台云服务器访问外网的方法,一台国内服务器,一台国外服务器,国内服务器通过端口转发来用于中转,中转的好处是,服务器对服务器 ...

  9. CAP带你轻松玩转ASP.NETCore消息队列

    CAP是什么? CAP是由我们园子里的杨晓东大神开发出来的一套分布式事务的决绝方案,是.Net Core Community中的第一个千星项目(目前已经1656 Start),具有轻量级.易使用.高性 ...

  10. Java连载17-赋值类运算符&字符串的连接运算符

    一.赋值运算符 1.赋值类运算符包括两种: (1)基本赋值运算符:= (2)扩展的赋值运算符: +=     -=    *=    /=    &= 赋值类的运算符优先级:先执行等号右边的表 ...