百度anyQ -- 编译错误

偶然在github上发现了百度的anyQ智能对话框架,刚好自己也在研究这一块,遂决定重现一下这个模型。中途遇到不少编译错误,现记录下来

错误

执行mkdir build && cd build && cmake .. && make 后报错如下:

1
2
3
4
/home/AnyQ/build/third_party/include/dmlc/./logging.h:323:31: error: ‘DMLC_LOG_STACK_TRACE_SIZE’ was not declared in this scope
make[2]: *** [third_party/paddle/src/extern_paddle-stamp/extern_paddle-build] Error 2
make[1]: *** [CMakeFiles/extern_paddle.dir/all] Error 2
make: *** [all] Error 2

解决方法:

  • 首先将原官方https://github.com/baidu/AnyQ.git 替换为 https://github.com/ljch2018/AnyQ.git
  • 然后修改如下两个文件,使之以单线程编译即可
1
2
3
4
xgboost.cmake:
INSTALL_COMMAND cd ${XGBOOST_INSTALL_DIR} && make -j1
paddle.cmake
BUILD_COMMAND cd ${PADDLE_INSTALL_DIR} && make -j1

建议

尽量使用官方的docker镜像,避免不必用的环境问题

1
2
# paddle官方镜像
docker pull paddlepaddle/paddle:latest-dev