C 小白的 thrift 环境搭建
公司有个通讯 是用的 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 环境搭建相关推荐
- python怎么把所有标点符号置空_Python从小白到攻城狮(1)——python环境搭建
我的微信公众号:代码视界,欢迎关注. Python介绍 Python是Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言,1991年发布第一版. Pyth ...
- 小白的渗透之旅1-DVWA环境搭建
小白的渗透之旅1-DVWA环境搭建 注意:DVWA需要依赖httpd.PHP.MySQL.php-mysql等应用或组件,最简单的方法是安装wampserver(http://www.wampserv ...
- 《Python从小白到大牛》第2篇 开发环境搭建
<Python从小白到大牛>已经上市! 开发环境搭建 <论语•魏灵公>曰:"工欲善其事,必先利其器",做好一件事,准备工作非常重要.在开始学习Python技 ...
- 测试小白基于java的selenium自动化测试环境搭建
本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...
- 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;
本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...
- yolov5-4.0环境搭建,零基础小白都能看得懂的教程。YOLOv5搭建的最快搭建方式,踩坑经历详谈)yolov5/yolov4/yolov3/yolov3通>>>>>>>>>>>>>>>>>第一章
第一章:python最新YOLOv5-4.0环境搭建,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 环境准备: yolov5-4.0环境搭建整体说明 2,anaconda的 ...
- Hadoop HDFS完全分布式环境搭建以及技术详解(保证没接触过大数据的小白看完就能独自把集群搭起来,并对HDFS有详细的认知)
**读懂本篇文章,能让小白快速入门,并且能够搭建完全分布式的集群,以及能对hadoop hdfs产生详细的认知,对以后的学习有很大的帮助** 我们先来了解hadoop的hdfs基本概念,熟知基本概念, ...
- 从入门到放弃——VO小白学习VIO系列(1)VINS环境搭建
从入门到放弃--VO小白学习VIO系列(1)VINS环境搭建 前言 入门知识 VINS环境的搭建 安装Ubuntu16.06 安装ROS Kinetic 添加ROS源(国内源) 设置秘钥 刷新源 安装 ...
- 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 ...
最新文章
- matlab regstats()
- 第2期 | 国内脑机接口领域专家教授汇总(修改)
- git pull命令执行时,命令框不可操作的问题
- 如何在eclipse中使用XYLayout布局?在此介绍如何把XYLayout导入到eclipse .
- 自拍会不会被大数据_大数据教你自拍 脸占画面1/3最漂亮
- Oracle自制数据仓库,自治数据库:Oracle 的自治数据仓库云-ADWC体验
- 使用jQuery实现网页技术(无数据库)
- 十折交叉验证python_机器学习(十二)交叉验证实例
- 【ResNet】Pytorch从零构建ResNet18
- 2016年全国各省市高考状元详情汇总一览
- 关于宁盾平台Spring框架RCE 0day漏洞修复的公告
- problems encountered during text search
- 5V转3.3V,你学会了吗?
- 网页播放全景视频和全景图片
- 安全防御 IPsec VPN
- 洛谷P3387 【模板】缩点 题解
- 在pc端上操作手机工具分享
- 古装大剧《倾世妖颜》9月27日首播 ,苏虐一体承包国庆假期
- 程序员内功-设计模式篇
- uniapp微信小程序使用vant-weapp详细操作步骤(各种坑)
热门文章
- Web中间件常见安全漏洞总结
- 大规模数据作成时的注意点。
- 有り様、状態、様子 の 区別
- 具体问题具体分析 之 QA票
- Safari浏览器(有时没有图片时,提交会出现问题)。
- mysql 根据状态输出_mysql show processlist 输出状态说明
- linux 64 mysql下载官网_Linux下安装MySQL5.7
- VS code中使用code runner遇到两例问题之解决:1.输出乱码,2运行无响应(输出)
- android自动化测试--appium运行的坑问题及解决方法
- 使用pip将Python软件包从本地文件系统文件夹安装到virtualenv