IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> linux的thrift编译指南详细版(64位 + 32位) -> 正文阅读

[C++知识库]linux的thrift编译指南详细版(64位 + 32位)

linux的thrift编译指南详细版(64位 + 32位)


一、简介

thrift是使用IDL定义接口的支持多种开发语言的RPC框架,是apache项目之一。


二、编译

  • thrift依赖于boostlibeventopenssl
  • 64位系统编译32库需要安装gcc-multilibg++ - multilib:
sudo apt-get install gcc-multilib g++-multilib
  • 本教程使用Ubuntu 20.04和GCC 9.3.0。

1. OpenSSL

cd openssl-1.1.1k

# 编译64位库
./config --prefix=/usr/local/openssl
# 编译32位库
setarch i386 ./config -m32 --prefix=/usr/local/openssl

make
sudo make install

#测试
make test

2. libevent

cd libevent-2.1.12-stable

# 不使用OpenSSL --disable-openssl
# 使用OpenSSL CPPFLAGS="-I/usr/local/openssl/include" LDFLAGS="-L/usr/local/openssl/lib -lssl -lcrypto"

# 编译64位
./configure --disable-openssl --prefix=/usr/local/libevent 
# 编译32位
CC="gcc -m32" ./configure i386 --disable-openssl --prefix=/usr/local/libevent 

make
sudo make install

#测试
make check 

3. boost

cd boost_1_77_0

# 查看库
./bootstrap.sh --show-libraries
# 默认库
./bootstrap.sh --prefix=/usr/local/boost
# 定制库
./bootstrap.sh --without-libraries=container,context,exception,stacktrace,type_erasure,filesystem,locale,chrono,contract,fiber,graph,graph_parallel,iostreams,log,math,mpi,python,program_options,random,test,wave --without-icu --prefix=/usr/local/boost

# 编译64位
./b2 --with-system --with-serialization link=static threading=multi toolset=gcc address-model=64
# 编译32位
sed '12c      using gcc : : <cxxflags>-std=c++11 <compileflags>-m32 <linkflags>-m32;' -i project-config.jam
./b2  --with-system --with-serialization link=static threading=multi toolset=gcc architecture=x86 address-model=32

sudo ./b2 install

4. thrift

| 安装byacc、flex 和 bison

cd thrift-0.14.2

# 编译64位
./configure --disable-tests --disable-shared --disable-tutorial --with-cpp --without-python --without-java --without-lua --without-csharp --without-erlang --without-php --without-php_extension --without-haskell --without-perl --without-go --without-c_glib --enable-static --with-boost=/usr/local/boost --with-libevent=/usr/local/libevent --prefix=/usr/local/thrift CPPFLAGS="-I/usr/local/openssl/include" LDFLAGS="-L/usr/local/openssl/lib -lssl -lcrypto"
 
# 编译32位
./configure --disable-tests --disable-shared --disable-tutorial --with-cpp --without-python --without-java --without-lua --without-csharp --without-erlang --without-php --without-php_extension --without-haskell --without-perl --without-go --without-c_glib --enable-static --with-boost=/usr/local/boost --with-libevent=/usr/local/libevent --prefix=/usr/local/thrift CC="gcc -m32" CXX="g++ -m32" CPPFLAGS="-I/usr/local/openssl/include" LDFLAGS="-L/usr/local/openssl/lib -lssl -lcrypto"

make
sudo make install

三、检查

  1. 查看.a、.o、.so文件的信息
readelf -h libssl.a 
  1. openssl提示找不到动态库
# 视生成的位数选择: lib或lib64
sudo ln -s /usr/local/openssl/lib/libcrypto.so.1.1  /usr/lib/libcrypto.so.1.1
sudo ln -s /usr/local/openssl/lib/libssl.so.1.1  /usr/lib64/libssl.so.1.1
  1. thrift是可以不使用openssl的,但它的编译脚本有问题!需要手动改!不折腾!

四、总结

  • 现在的开发环境基本为64位,thrift默认编译为64位或交叉编译会相对简单,但是在64位系统编译为32位会很麻烦,因为thrift依赖于boost和libevent库,导致查阅资料和尝试编译耗时,效率不高。
  • 学习thrift的入门时间成本很高,相对来说,一次成功编译后续可以直接使用,还是能接受的。
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:21:43  更:2021-08-22 13:23:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 4:58:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计