gpt4 book ai didi

c - 使用 Postgres 时 C 中的链接器错误

转载 作者:行者123 更新时间:2023-11-30 14:19:51 25 4
gpt4 key购买 nike

我有以下代码:

#include <stdio.h>
#include <stdlib.h>
#include <libpq-fe.h>

int main(int argc, char* argv[])
{
//Start connection
PGconn* connection = PQconnectdb("host=webcourse.cs.nuim.ie dbname=cs621 sslmode=require user=ggales password=1234");

if (PQstatus(connection) ==CONNECTION_BAD)
{
printf("Connection error\n");
PQfinish(connection);
return -1; //Execution of the program will stop here
}
printf("Connection ok\n");
//End connection
PQfinish(connection);
printf("Disconnected\n");


return 0;
}

当我运行它时,出现以下错误:

/tmp/cc73kO0N.o: In function `main':
main.c:(.text+0x15): undefined reference to `PQconnectdb'
main.c:(.text+0x25): undefined reference to `PQstatus'
main.c:(.text+0x40): undefined reference to `PQfinish'
main.c:(.text+0x5d): undefined reference to `PQfinish'
collect2: error: ld returned 1 exit status

这很奇怪,因为 PQconnectdb 等都是在 libpq-fe.h 中定义的函数,我已经将其包含在代码中。

任何帮助都会非常感谢。

最佳答案

#include <libpq-fe.h>不链接到库,它只包含有关库提供的函数和数据类型的信息。

您必须告诉链接器 libpq-fe.h 中声明的引用在哪里确实可以找到。

如果您使用 Makefile 来编译代码,您应该添加 -lpq给您LDFLAGS或链接命令。

发布您正在运行的编译命令,以便为我们提供更多信息。

关于c - 使用 Postgres 时 C 中的链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com