Templar101 2018-06-10 05:48 采纳率: 0%
浏览 1190
已结题

Ubuntu thrift 服务编译 未找到TSimpleServer的引用

环境 Ubuntu16.04 g++ 5.4 thrift 0.11
thrift已安装正确,生成相应的cpp代码 进行服务端编译 makefile如下
1 CC=g++ -Wall -O2
2 CFLAGS=-I/usr/local/include/thrift -I./
3 LFLAGS=-L/usr/local/lib
4 LDEXEFLAGS=-lthrift
5 CPPDEFS=-DHAVE_NETINET_IN_H
6 SRC=test_service.cpp\
7 test_types.cpp\
8 test_constants.cpp
9
10 all: server
11
12 server: test_service_server.skeleton.cpp
13 ${CC} ${CPPDEFS} -o server ${CFLAGS} test_service_server.skeleton.cpp ${SRC} ${LFLAGS} ${LDEXEFLAGS}
14
15
16 clean:
17 rm -f ./*.o server

编译后出现
g++ -Wall -O2 -DHAVE_NETINET_IN_H -o server -I/usr/local/include/thrift -I./ test_service_server.skeleton.cpp test_service.cpp test_types.cpp test_constants.cpp -L/usr/local/lib -lthrift
/tmp/cckAX0Xn.o:在函数‘main’中:
test_service_server.skeleton.cpp:(.text.startup+0x299):对‘apache::thrift::server::TSimpleServer::TSimpleServer(boost::shared_ptrapache::thrift::TProcessor const&, boost::shared_ptr :TServerTransport> const&, boost::shared_ptrapache::thrift::transport::TTransportFactory const&, boost::shared_ptrapache::thrift::protocol::TProtocolFactory const&)’未定义的引用
collect2: error: ld returned 1 exit status
makefile:13: recipe for target 'server' failed
make: *** [server] Error 1

这样的错误,但是查看资料,lthrift已经在最后,不知为何还会出错?

  • 写回答

2条回答 默认 最新

  • jSORoROWy 2020-05-07 17:43
    关注
    /tmp/ccX2bX8q.o: In function `main':
    /root/workspace/thrift/test3/gen-cpp/WorkerManager_server.skeleton.cpp:41: undefined reference to `apache::thrift::server::TSimpleServer::TSimpleServer(boost::shared_ptr<apache::thrift::TProcessor> const&, boost::shared_ptr<apache::thrift::transport::TServerTransport> const&, boost::shared_ptr<apache::thrift::transport::TTransportFactory> const&, boost::shared_ptr<apache::thrift::protocol::TProtocolFactory> const&)'
    collect2: error: ld returned 1 exit status
    

    由于使用了 boost 库,
    改为 stdcxx 即可,-std=c++11

    g++ -g -Wall -I./ -I/usr/local/include/thrift WorkerManager.cpp worker_types.cpp worker_constants.cpp WorkerManager_server.skeleton.cpp -L/usr/local/lib/*.so -lthrift -std=c++11 -o server
    ``
    
    评论

报告相同问题?

悬赏问题

  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号