无法在Linux和Windows中编译Pgbouncer

3

我正试图将pgbouncer编译用于运行在Windows Server 2008中的PostgreSQL服务器上。然而,我无法编译dll,并且相同的错误出现在Linux(Ubuntu)和Windows中:

查找libevent... 配置:错误:未找到:无法继续

我正在遵循这个如何操作。我已经使用mingw在Windows中编译了libevent并将生成的dll复制到System32、SysWOW64甚至自己的pgbouncer目录中。我做错了什么吗?


2
永远不要将随意的DLL文件复制到C:\Windows目录下。这种做法极其糟糕,应该尽量避免。 - rubenvb
对于 Windows 系统,如果可能的话,请查找预编译二进制文件。对于 Linux 系统,请从软件包中安装 pgbouncer;请参考 apt.postgresql.org 和 yum.postgresql.org。 - Craig Ringer
3个回答

4

configure正在检查软件包构建是否可以链接libevent库。为此,它需要确保满足libevent 开发依赖关系。它不仅检查libevent本身是否可以找到进行链接,还要检查编译器能否找到头文件<event.h>(确切地说是这样的)。

为了使configure成功,您必须确保:

  • 位于您的libevent软件包中的event.h可在编译器的默认或配置的包含搜索路径中找到。

  • 位于您的libevent软件包中的二进制文件可在链接器的默认或配置的库搜索路径中找到。

在您所参考的HowTo的开头附近,您会看到configure接受一个参数--with-libevent=libevent-prefix,这可以使其变得容易。./configure --help显示:

--with-libevent=prefix  Specify where libevent is installed

对于您的Ubuntu系统,简短的答案是:从软件包管理器中安装libevent-dev。在Ubuntu中,您也可以从软件包管理器中安装pgbouncer,但也许您想要最新版本。

谢谢。我已经在Windows上添加了前缀并重新安装了libevent。然后在--with-libevent中使用它。 - brevleq

2

您需要安装libevent-devel,它提供了两个event.h文件:

# find / -name event.h 2>/dev/null 
/usr/include/event.h
/usr/include/event2/event.h

安装请执行以下命令:

yum install libevent-devel.x86_64

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接