ARM64 平台 PostgreSQL 编译

环境

  • 操作系统 - Ubuntu Trusty Tahr (development branch)
  • 硬件平台 - ARM64
  • 编译器 - gcc (Cavium Inc. Version 0.99 build 407)
  • 数据库 - PostgreSQL 10.0

填坑过程

我在接到任务的时候原以为蛮简单的,不就是从源码编译 PostgreSQL 嘛,谁知道这里面坑还不少,下面简要记录一下此次填坑过程。

既然是编译 PostgreSQL ,首先需要下载解压,这类操作就不细说了。在解压出来之后,按照常规的流程 configure, make, make install 走,谁知道第一步就出问题了,提示没有找到 readline 库。

configure

既然没有,那就安装呗。我利用 sudo apt-get install libreadline-dev 很快就安装完了,然后重新执行 ./configure ,问题依然没有解决,还是提示无法找到 readline 库,这就奇了怪了,明明安装了却找不到。这时发现居然还没法找到突破口,然后就先丢开这个问题,使用 ./configure --without-readline 继续,这时又说没有 zlib 库。同样使用 sudo apt-get install zlib1g-dev 安装并重新 configure 同样是找不到 zlib 库。既然都已经放掉了一个 readline 也不差这个 zlib 了。 我就看看你到底却多少库,接着我使用 ./configure --without-readline --without-zlib ,这回它居然奇迹般的通过了, make && make install 也没有问题。那么问题来了,为什么安装了的库 configure 的时候却找不到呢?

为了测试为什么找不到已安装的库,我自己写了个测试程序用于测试 readline 库,如下所示:

#include <stdio.h>
#include <readline/readline.h>

int main()
{
    char *msg = readline("Enter: ");
    printf("Your input is %s\n", msg);
    return 0;
}

编译命令如下:

$ gcc test.c -o test -lreadline
/opt/thunderx/toolchain/thunderx-tools-407/aarch64-thunderx-linux-gnu/sys-root/usr/bin/../lib/gcc/aarch64-thunderx-linux-gnu/5.2.0/../../../../aarch64-thunderx-linux-gnu/bin/ld: cannot find /lib64/libc.so.6
/opt/thunderx/toolchain/thunderx-tools-407/aarch64-thunderx-linux-gnu/sys-root/usr/bin/../lib/gcc/aarch64-thunderx-linux-gnu/5.2
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值