美文网首页
Mac下thrift编译问题[转]

Mac下thrift编译问题[转]

作者: 雨中星辰0 | 来源:发表于2019-11-03 17:14 被阅读0次

最近打算了解一下thrift框架的使用,在mac下,使用命令
brew install thrift

安装thrift。thrift版本为0.11.0,boost版本为1.67(此为一坑)。
安装完成后,参考网上的教程,编写了简单的thrift文件,使用命令

thrift -r --gen cpp ICalc.thrift

编译thrift文件,产生gen-cpp目录,其中有框架生成的cpp文件。
修改相关文件,然后在命令行下使用命令

g++ -g -Wall ICalc.h ICalc.cpp ICalc_constants.h ICalc_constants.cpp ICalc_types.h ICalc_types.cpp ICalc_server.skeleton.cpp

进行编译。
产生编译错误:

/usr/local/include/thrift/stdcxx.h:32:10: fatal error: 'boost/tr1/functional.hpp' file not found
#include <boost/tr1/functional.hpp>

google后(链接在此)发现:boost@1.67版本移除了tr1相关文件,导致编译错误。
解决办法为:安装boost@1.60版本,使用其中的tr1相关文件(此版本还未移除)。

brew install boost@1.60
  • 可以直接将1.60版本/include/boost下的tr1文件夹直接复制到默认的库目录/usr/local/include/boost下
  • 也可以手动指定链接库目录:使用g++参数-L/usr/local/opt/boost@1.60/lib以及-I/usr/local/opt/boost@1.60/include/

例如:

g++ -g -Wall -L/usr/local/opt/boost@1.60/lib -I/usr/local/opt/boost@1.60/include/ ICalc.h ICalc.cpp ICalc_constants.h ICalc_constants.cpp ICalc_types.h ICalc_types.cpp ICalc_server.skeleton.cpp

但此时依旧有编译错误:

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决办法为:添加参数-std=c++11 -lthrift
最后完整命令为

g++ -std=c++11 -g -Wall -lthrift ICalc.h ICalc.cpp ICalc_constants.h ICalc_constants.cpp ICalc_types.h ICalc_types.cpp ICalc_server.skeleton.cpp

————————————————
原文链接:https://blog.csdn.net/liaozelin_/article/details/80255636

相关文章

  • Mac下thrift编译问题[转]

    最近打算了解一下thrift框架的使用,在mac下,使用命令brew install thrift 安装thrif...

  • thrift

    一、mac下安装brew updatebrew install thrift执行thrift -version,显...

  • 在 macOS Sierra系统(10.12.4)上安装 thr

    安装 在macOS上安装Thrift Thrift Mac上安装说明 mac 安装 thrift 首先参考官网安装...

  • Mac下安装Thrift

    方法一: 1. 使用 brew 安装。 brew install thrift 如果没有 Homebrew,先安装...

  • mac 下安装thrift

    首先更新brew 为 中科大源 重置为官方源 安装 thrift

  • Golang交叉编译

    一、Mac下编译Linux 和 Windows 二、Windows下编译Mac和Linux 三、Linux下编译M...

  • 自己动手编译OpenJDK

    Linux下 编译 Centos 下编译OpenJDK Mac下编译 MacOS 下编译OpenJDK Windo...

  • go 语言学习

    Golang 在 Mac、Linux、Windows 下如何交叉编译 Mac 下编译 Linux 和 Window...

  • golang交叉编译

    Mac 下编译 Linux 和 Windows 64位可执行程序 linux 下编译 Mac 和 Windows ...

  • Mac m1的交叉编译

    Mac M1交叉编译问题 最近刚从window转到Mac系统,用Mac交叉编译window程序时遇到一点问题。 配...

网友评论

      本文标题:Mac下thrift编译问题[转]

      本文链接:https://www.haomeiwen.com/subject/rvclbctx.html