You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows系统下编译PostgreSQL ECPG程序失败的问题咨询

Windows系统下编译PostgreSQL ECPG程序失败的问题咨询

我在Windows 11上安装了PostgreSQL v15.5,在C:\Program Files\PostgreSQL\15\lib路径下找到了ECPG的相关库文件(libecpg.dlllibecpg.lib),同时为了编译ECPG程序,我也安装了MinGW的gcc编译器。

我写了一个非常简单的ECPG测试程序example01.pgc,代码如下:

#include <stdio.h>
#include <stdlib.h>

void main()
{
exec sql begin declare section;
int sum;  /* host variable */
exec sql end declare section;

exec sql connect to 'postgres';  /* connect to postgres DB */
exec sql select 1 + 1 into :sum;

printf("sum = %d\n", sum);
}

但在编译这个程序的过程中,我始终遇到失败的情况,具体的执行步骤和报错信息如下:

E:\ecpg>ecpg example01.pgc

E:\ecpg>gcc -I"C:\\Program Files\\PostgreSQL\\15\\include" -c example01.c

E:\ecpg>gcc -L"C:\\Program Files\\PostgreSQL\\15\\lib\\libecpg.dll" -o example01 example01.o
example01.o:example01.c:(.text+0x46): undefined reference to `ECPGconnect'
example01.o:example01.c:(.text+0xe2): undefined reference to `ECPGdo'
collect2.exe: error: ld returned 1 exit status

E:\ecpg>gcc -L"C:\\Program Files\\PostgreSQL\\15\\lib\\libecpg.lib" -o example01 example01.o
example01.o:example01.c:(.text+0x46): undefined reference to `ECPGconnect'
example01.o:example01.c:(.text+0xe2): undefined reference to `ECPGdo'
collect2.exe: error: ld returned 1 exit status

需要说明的是,这段代码在Linux系统上编译是可以正常运行的,但在Windows上却一直报未定义引用的错误。我想知道:Windows系统下是不是无法编译ECPG程序?如果可以的话,我该怎么操作才能解决这个问题?麻烦大家帮忙看看,谢谢!

备注:内容来源于stack exchange,提问作者Ciphero Chen

火山引擎 最新活动