暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

boost编译失败

原创 酷哥 2022-04-22
1637

概述

本文档介绍再编译openGauss-third_party三方库时候,boost编译失败解决方法。 目前在 1.1.0 2.0.0 版本都适用。

错误分析和处理

在编译openGauss-third_party三方库时候,我们首先在build目录下执行sh build.sh,三方库自行编译。 但是经常遇到在编译到boost的时候,脚本终止掉了。很明显,这里面编译出错了。


dependency依赖的编译日志在 dependency/build 目录下demo.log,这里面可以很明显的看到错误信息。 也可以进入到dependency/boost目录下,单独编译,看看报错。

sh build.sh -m all


可以看到缺少了 pyconfig.h 头文件。 使用 yum provides */pyconfig.h 查找下,发现在python-devel包里面,需要安装下python2-devel包。


yum install python2-devel
yum install python3-devel

其实我们在编译前,已经安装过这两个依赖。但是还是出现了这个问题。。。。

我们在开始编译的时候,做了这个操作,将python链接到python3: ln -s /usr/bin/python3 /usr/bin/python

安装依赖

使用下面的步骤来构建开源软件的二进制目录,用来编译openGauss数据库。

请确保在构建前,服务器已经安装了 gcc gcc-c++

开始编译二进制前,还需要下面这些依赖,可以通过yum install进行安装。

编译三方库中python相关组件依赖python3,请将/usr/bin/python链接到python3。

这里是因为,三方库里面有很多需要使用python3编译的三方库,但是脚本中写的/usr/bin/python的执行环境,所以需要做这个链接操作,将python指向python3。
但是boost编译,依赖的头文件是python2-devel的,这里需要将python链接到python2上。如下:

unlink /usr/bin/python
ln -s /usr/bin/python2 /usr/bin/python

再次编译 sh build.sh -m all,编译成功。


dependency/build/build_dependency.sh 里面,注释掉已经编译好的脚本片段,执行 sh build_dependency.sh 继续编译未完成的三方库。

注意:在编译完boost后,还需要将python再链接到python3,以完成后面三方库的编译工作。

unlink /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论