公司有个通讯 是用的 thrift ,thrift 是个什么都东西,可以类比 webservice 吧,比 webservice 高效些,不管是啥,搞他!

先在 mac 上搞本地开发环境

网上一搜 貌似依赖 boost、libevent

boost 是 c/c++ std 的拓展,一些 list、vector 等等啥的,好像还有些比 std 更高级的功能,旁边搞c 的同事说太重了,他一般不用,不管了,下下来

libevent 是 c/c++ 的网络通讯框架,类似java 下的 nio ?也下下来

按网上的步骤安装 boost,发现依赖 高版本的 bison(2.6,系统自带的是2.4),这个 bison 是干啥的?“语法分析器生成器” ,是类似语法检查的?就是说标准的 c/c++ gcc 来检查,拓展的 boost 的语法由 bison 来检查?我先这样理解吧

libevent 依赖 openssl,直接编译会报错 "<openssl/bio.h> not found"

一、安装bison

wget http://ftp.gnu.org/gnu/bison/bison-2.6.4.tar.gz
tar -zxvf bison-2.6.4.tar.gz
cd bison-2.6.4
./configure
./configure && make -j $(getconf _NPROCESSORS_ONLN) && make install
# -j 意思好像是一共是几核几线程,加速 make 的速度的
bison -V
# 如果不行,就退出 Terminal 再启动试试

二、安装 boost

tar -zxvf boost_1_66_0.tar.gz
./bootstrap.sh —prefix=PATH_TO_BOOST
sudo ./b2 threading=multi address-model=64 variant=release stage install

三、安装openssl

#先用 brew 安装
# ---------------------------------------------------------------------------------------------------
brew install openssl
#安装到了 /usr/local/Cellar/openssl/1.0.2n/bin 下 直接 openssl version 肯定是不行的
sudo mv /usr/bin/openssl /usr/bin/openssl_old
sudo mv /usr/local/Cellar/openssl/1.0.2n/bin/openssl /usr/bin/openssl
# macOS Sierra 下 /usr/bin 是没有权限修改的,需要进入安全模式
# 1、重启 2、开机按下 commond +r 3、进入terminal 敲入 csrutil disable
# 但是 mv 了 也还是不行,不能安装 libevent 估计是 依赖的静态类库 或者 动态类库,没拷贝,只拷贝了 二进制可执行程序
brew link openssl
# 是不是把 lib 也拷贝过去了呢,好像也不行,算了换源码安装
# ---------------------------------------------------------------------------------------------------
tar -zxvf openssl-1.0.2l.tar
cd openssl-1.0.2l
sudo ./config --prefix=/usr/local/openssl
make
make install
# 在安装 libevent 的时候还是不行,缺少依赖的 openssl 的类库 "<openssl/bio.h> not found"
# 后来拷贝了头文件,使得编译通过
cp -R /usr/local/Cellar/openssl/1.0.2n/include/ /Users/carl/Downloads/libevent-2.1.8-stable

四、安装 libevent

cd libevent-2.0.21-stable
./configure --prefix=/usr/local
make clean
make && make install

五、安装 thrift

cd thrift-0.9.3
./bootstrap.sh
./configure --prefix=/usr/local/ --disable-static --with-boost=/usr/local --with-libevent=/usr/local --without-python --without-csharp --without-ruby --without-perl --without-php --without-haskell --without-erlang
make
make install
完成 thrift 安装
thrift --version
可以看到其版本号码
编写 thrift 的 demo_server、demo_client 的 hello world 程序时,却发现在mac 系统下并没有 其没有生产对应的类库
编译不报错,但运行 demo_server 时报错了
错误是
dyld: Symbol not found: _GENERAL_NAME_free
Referenced from: /usr/local/lib/libthrift-0.9.3.dylib
Expected in: flat namespace
in /usr/local/lib/libthrift-0.9.3.dylib
Abort trap: 6
这个搞半天,比如 在 thrift configure 之后,make 之前加上
export CXXFLAGS="-std=c++11"
#直接导致 thrift 无法生成了
发现 貌似是 Mac 的 gcc 是用的 llvm + clang ,这两货应该就是 linux 下的 gcc 的 mac 版本,就是说不是普通的 gcc 了,貌似上述问题都是由于 mac 导致的,不管了,先在centos 虚拟机下面配置,如果可行的话,在把 gcc 给换了

centos 下的 thrift 安装

步骤大同小异

只是 默认 centos 6.5 下 cmake 都没有

在编译 demo 程序时,安装都 cmake 版本还要求比较高,高版本的 cmake 还需要高版本的 gcc一路升级吧

# 先 gcc 升级 到最新版本,是 4.8,找到一个 yum 的升级方法
cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-2/devtools-2.repo
yum install devtoolset-2-gcc
yum install devtoolset-2-binutils
yum install devtoolset-2-gcc-gfortran
yum install devtoolset-2-gcc-c++
source /opt/rh/devtoolset-2/enable

cmake 3.11 安装

./bootstrap --prefix=/usr
make
make install

终于可以运行 thrift 的 demo 了

C 小白的 thrift 环境搭建相关推荐

  1. python怎么把所有标点符号置空_Python从小白到攻城狮(1)——python环境搭建

    我的微信公众号:代码视界,欢迎关注. Python介绍 Python是Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言,1991年发布第一版. Pyth ...

  2. 小白的渗透之旅1-DVWA环境搭建

    小白的渗透之旅1-DVWA环境搭建 注意:DVWA需要依赖httpd.PHP.MySQL.php-mysql等应用或组件,最简单的方法是安装wampserver(http://www.wampserv ...

  3. 《Python从小白到大牛》第2篇 开发环境搭建

    <Python从小白到大牛>已经上市! 开发环境搭建 <论语•魏灵公>曰:"工欲善其事,必先利其器",做好一件事,准备工作非常重要.在开始学习Python技 ...

  4. 测试小白基于java的selenium自动化测试环境搭建

    本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...

  5. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...

  6. yolov5-4.0环境搭建,零基础小白都能看得懂的教程。YOLOv5搭建的最快搭建方式,踩坑经历详谈)yolov5/yolov4/yolov3/yolov3通>>>>>>>>>>>>>>>>>第一章

    第一章:python最新YOLOv5-4.0环境搭建,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 环境准备: yolov5-4.0环境搭建整体说明 2,anaconda的 ...

  7. Hadoop HDFS完全分布式环境搭建以及技术详解(保证没接触过大数据的小白看完就能独自把集群搭起来,并对HDFS有详细的认知)

    **读懂本篇文章,能让小白快速入门,并且能够搭建完全分布式的集群,以及能对hadoop hdfs产生详细的认知,对以后的学习有很大的帮助** 我们先来了解hadoop的hdfs基本概念,熟知基本概念, ...

  8. 从入门到放弃——VO小白学习VIO系列(1)VINS环境搭建

    从入门到放弃--VO小白学习VIO系列(1)VINS环境搭建 前言 入门知识 VINS环境的搭建 安装Ubuntu16.06 安装ROS Kinetic 添加ROS源(国内源) 设置秘钥 刷新源 安装 ...

  9. ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!

    文章目录 1.前言 2. SDK概述 2.1 SDK使用流程 2.2 ESP8266 HDK -- 硬件开发工具 2.3 ESP8266 SDK -- 软件开发工具包 2.3.1 Non-OS SDK ...

最新文章

  1. matlab regstats()
  2. 第2期 | 国内脑机接口领域专家教授汇总(修改)
  3. git pull命令执行时,命令框不可操作的问题
  4. 如何在eclipse中使用XYLayout布局?在此介绍如何把XYLayout导入到eclipse .
  5. 自拍会不会被大数据_大数据教你自拍 脸占画面1/3最漂亮
  6. Oracle自制数据仓库,自治数据库:Oracle 的自治数据仓库云-ADWC体验
  7. 使用jQuery实现网页技术(无数据库)
  8. 十折交叉验证python_机器学习(十二)交叉验证实例
  9. 【ResNet】Pytorch从零构建ResNet18
  10. 2016年全国各省市高考状元详情汇总一览
  11. 关于宁盾平台Spring框架RCE 0day漏洞修复的公告
  12. problems encountered during text search
  13. 5V转3.3V,你学会了吗?
  14. 网页播放全景视频和全景图片
  15. 安全防御 IPsec VPN
  16. 洛谷P3387 【模板】缩点 题解
  17. 在pc端上操作手机工具分享
  18. 古装大剧《倾世妖颜》9月27日首播 ,苏虐一体承包国庆假期
  19. 程序员内功-设计模式篇
  20. uniapp微信小程序使用vant-weapp详细操作步骤(各种坑)

热门文章

  1. Web中间件常见安全漏洞总结
  2. 大规模数据作成时的注意点。
  3. 有り様、状態、様子 の 区別
  4. 具体问题具体分析 之 QA票
  5. Safari浏览器(有时没有图片时,提交会出现问题)。
  6. mysql 根据状态输出_mysql show processlist 输出状态说明
  7. linux 64 mysql下载官网_Linux下安装MySQL5.7
  8. VS code中使用code runner遇到两例问题之解决:1.输出乱码,2运行无响应(输出)
  9. android自动化测试--appium运行的坑问题及解决方法
  10. 使用pip将Python软件包从本地文件系统文件夹安装到virtualenv