我已经构建了一个安装了 gnuCobol 3.1.2 和 postgresql 的 Ubuntu 服务器 18.04 LTS。我正在尝试使用 libpq 构建一个本机接口,以便与来自 COBOL 的数据库进行通信。我已经尝试了好几天了,但仍然无法运行测试。首先,我编译了运行时:
gcc -x -v -o t -lpq -lcob psql_test1.c
这回来了未定义符号列表。我试过直接链接库文件:
gcc -x -v -o t psql_test1.c /usr/local/lib/libcob.so /usr/lib/x86_64-linux-gnu/libpq.a
编译现在是正确的。它返回 0。但是当我用 ./t 运行测试时,它再次出现错误:
Before connect: 0x0000000000000000
Error: PQconnectdb link problem, try -lpq
我很困惑,因为现在一切都正确编译了,我可以用 nm 找到例程:
$> nm /usr/lib/x86_64-linux-gnu/libpq.a | grep connectdb
0000000000006e00 T PQconnectdb
0000000000006d30 T PQconnectdbParams
有人可以给我提示吗,我该怎么做才能解决这个问题?