【问题标题】:How build 64-bit version of libpq from source code?如何从源代码构建 64 位版本的 libpq?
【发布时间】:2016-04-25 07:06:59
【问题描述】:

我正在尝试从 C 代码连接到 PostgreSQL,我必须从源代码构建 libpq,因为我在 AIX 上。我按照此评论中的步骤操作 Where do i get libpq source? 但结果我得到了一个 32 位版本的 libpq.a,如何构建 64 位版本?

【问题讨论】:

    标签: postgresql aix libpq xlc


    【解决方案1】:

    在 AIX 上编译比在其他平台上更难... 始终创建一个您逐渐改进的脚本,直到您获得工作版本。可能的开始:

    #!/bin/sh
    
    #assuming gcc
    GCCLIB=$(dirname $(gcc -maix64 -pthread -print-file-name=libgcc_s.a))
    export CFLAGS='-maix64 -mtune=native -pthread'
    export CPPFLAGS='-D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_ALL_SOURCE'
    export LDFLAGS="-maix64 -Wl,-brtl -Wl,-blibpath:/usr/local/lib64:${GCCLIB}:/usr/lib -L/usr/local/lib64 -pthread"
    export OBJECT_MODE=64
    
    ./configure --prefix=/usr/local \
        --libdir=/usr/local/lib64   \
        --enable-shared             \
        --enable-static             \
        2>&1 | tee log.configure
    
    make all 2>&1 | tee log.make.all
    make install 2>&1 | tee log.make.install
    

    【讨论】:

    • 谢谢!但是如果我想使用 xlC 而不是 gcc 怎么办?还是不可能?我已经知道我不能没有 gnu make。
    • 当然可以,但是您必须搜索合适的选项,例如使用-q64 而不是-maix64;你也必须删除“GCCLIB”-parts
    • 也许您必须将-pthread 更改为-lpthreads 并显式设置CC 变量:export CC=xlC_r
    • 更正:export CC=xlc_r; export CXX=xlC_r(字母c/C的大小写表示C或C++)
    【解决方案2】:

    -q64 编译器选项启用 64 位(编译器文档中有相关信息)

    xlC 64 位的快速谷歌搜索给出了这个链接,你可能会觉得有帮助。

    http://northstar-www.dartmouth.edu/doc/ibmcxx/en_US/doc/complink/tasks/tubld64a.htm

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2020-07-31
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 2019-09-21
      相关资源
      最近更新 更多