方法一: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. 201871010125 王玉江 《面向对象程序设计(java)》 第四周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/wswyj/ 作业学习目 ...

  2. zz独家专访AI大神贾扬清:我为什么选择加入阿里巴巴?

    独家专访AI大神贾扬清:我为什么选择加入阿里巴巴? Natalie.Cai 拥有的都是侥幸,失去的都是人生 ​关注她 5 人赞同了该文章 本文由 「AI前线」原创,原文链接:独家专访AI大神贾扬清:我 ...

  3. VIJOS-P1045 Kerry 的电缆网络

    JDOJ 1229: VIJOS-P1045 Kerry 的电缆网络 https://neooj.com/oldoj/problem.php?id=1229 Description         K ...

  4. electron 创建托盘应用

    在Electron中我们创建一个托盘需要如下几个文件: 1. main.js 用来存放应用代码.2. 一张PNG格式的图片用作应用图标.3. 一个package.json文件用来描述应用配置. 下面是 ...

  5. Autofac注册组件详解

    注册概念:我们通过创建 ContainerBuilder 来注册 组件 并且告诉容器哪些 组件 暴露了哪些 服务.组件 可以通过 反射 创建; 通过提供现成的 实例创建; 或者通过 lambda 表达 ...

  6. Office 2016正式版/2019预览版 使用注意

    改写状态已经被隐藏 右击Word状态栏可以看到改写是否打开

  7. C++中vector小学习,顺便查了下<stdio.h>(或<cstdio>)

    今天看书,邻桌在看<C++ Primer>,拿过来看了一会儿.以前比较少用vector容器,看了下后,瞬间觉得好腻害的样子,就想试一下.嗯,就是试一下而已.(代码可能网上都差不多,有参考) ...

  8. java web开发需要注意的地方

    java需要注意的 1.字符串值相等比较 c#用双等号(==)来进行 字符串值相等比较.如下: string a="3"; string b="3"; if(a ...

  9. [转载]3.3 UiPath鼠标操作图像的介绍和使用

    一.鼠标(mouse)操作的介绍 模拟用户使用鼠标操作的一种行为,例如单击,双击,悬浮.根据作用对象的不同我们可以分为对元素的操作.对文本的操作和对图像的操作 二.鼠标对图像的操作在UiPath中的使 ...

  10. Github的初始设置

    设置姓名和邮箱地址 git config --global user.name "Firstname Lastname" git config --global user.emai ...