【AnyQ】遇到的问题整理(一)

【一】编译出错

【问题描述】

In file included from /home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel.h:291:0,

from /home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/operators/channel_create_op.cc:15:

/home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel_impl.h:69:32: error: ‘recursive_mutex’ is not a member of ‘std’

void Wait(std::unique_lockstd::recursive_mutex &lock) {

^~~

/home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel_impl.h:69:32: error: ‘recursive_mutex’ is not a member of ‘std’

/home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel_impl.h:69:52: error: template argument 1 is invalid

void Wait(std::unique_lockstd::recursive_mutex &lock) {

^

/home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel_impl.h:106:8: error: ‘recursive_mutex’ in namespace ‘std’ does not name a type

std::recursive_mutex mu_;

^~~~~~~~~~~~~~~

In file included from /home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel.h:291:0,

from /home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/operators/channel_create_op.cc:15:

/home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel_impl.h: In member function ‘virtual bool paddle::framework::ChannelImpl::CanSend()’:

/home/jockeyyan/git-repository/QuestionAnsweringBot/AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel_impl.h:124:19: error: ‘recursive_mutex’ is not a member of ‘std’

std::lock_guardstd::recursive_mutex lock{mu_};

【解决方案】

在 AnyQ/build/third_party/paddle/src/extern_paddle/paddle/fluid/framework/channel_impl.h 文件里加了一行头文件,编译通过了。

#include <mutex>


【二】编译出错

【问题描述】

[ 17%] Built target proto_build

[ 21%] Built target extern_eigen

[ 25%] Built target extern_gtest

[ 30%] Built target extern_gflags

[ 35%] Built target extern_openssl

[ 39%] Built target extern_glog

[ 43%] Built target extern_leveldb

[ 47%] Built target extern_brpc

[ 52%] Built target extern_curl

[ 53%] Performing build step for 'extern_paddle'

[ 1%] Built target extern_eigen3

[ 1%] Built target extern_gflags

[ 2%] Built target extern_threadpool

[ 5%] Built target extern_boost

[ 3%] Built target extern_snappy

[ 3%] Built target extern_zlib

[ 3%] Built target extern_mklml

[ 4%] Built target swig

[ 6%] Built target extern_warpctc

[ 7%] Built target extern_lib_any

[ 7%] Built target framework_py_proto_init

[ 7%] Built target profiler_py_proto_init

paddle/fluid/framework/CMakeFiles/framework_py_proto.dir/build.make:60: *** target pattern contains no '%'. Stop.

CMakeFiles/Makefile2:2402: recipe for target 'paddle/fluid/framework/CMakeFiles/framework_py_proto.dir/all' failed

make[4]: *** [paddle/fluid/framework/CMakeFiles/framework_py_proto.dir/all] Error 2

make[4]: *** Waiting for unfinished jobs....

paddle/fluid/platform/CMakeFiles/profiler_py_proto.dir/build.make:60: *** target pattern contains no '%'. Stop.

CMakeFiles/Makefile2:1751: recipe for target 'paddle/fluid/platform/CMakeFiles/profiler_py_proto.dir/all' failed

make[4]: *** [paddle/fluid/platform/CMakeFiles/profiler_py_proto.dir/all] Error 2

[ 8%] Built target extern_glog

[ 8%] Built target extern_snappystream

[ 9%] Built target extern_protobuf

Makefile:105: recipe for target 'all' failed

make[3]: *** [all] Error 2

CMakeFiles/extern_paddle.dir/build.make:111: recipe for target 'third_party/paddle/src/extern_paddle-stamp/extern_paddle-build' failed

make[2]: *** [third_party/paddle/src/extern_paddle-stamp/extern_paddle-build] Error 2

CMakeFiles/Makefile2:857: recipe for target 'CMakeFiles/extern_paddle.dir/all' failed

make[1]: *** [CMakeFiles/extern_paddle.dir/all] Error 2

Makefile:83: recipe for target 'all' failed

make: *** [all] Error 2

【解决方案】

这个错误是跟cmake版本有关系,我改成cmake 3.2.2 就不会报错了。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值