在我们的其中一台服务器上,pgAgent
服务没有以消息开头"ERROR: Couldn't register event handle"
(请参阅DBA 问题)。所以我决定从源代码编译二进制文件,以进一步调查问题。
我安装了Visual Studio Community 2017 Edition。我下载了 pgagent 源代码 3.4.0并解压到F:\pgbuild\pgAgent-3.4.0
. 我下载了wxWidgets 2.8,解压F:\pgbuild\wxWidgets
并使用 Visual Studio 2017 构建。我指出了这些变量
wxMSW=F:\pgbuild\wxWidgets
WXWIN=F:\pgbuild\wxWidgets
PGDIR=C:\Program Files\PostgreSQL\9.6
WIX=C:\Program Files (x86)\WiX Toolset v3.11\
然后我尝试编译pgAgent。Visual Studio 可以识别它的 CMake 项目。当我编译 cmake 项目时,我得到一个错误:
Severity Code Description Project File Line Suppression State
Error C1083 Cannot open include file: '../../../lib/vc_lib/mswd/wx/setup.h': No such file or directory F:\pgbuild\pgAgent-3.4.0\CMakeLists.txt F:\pgbuild\wxWidgets\include\msvc\wx\setup.h 123
网上有很多关于这个问题的网址,但我无法处理它。
在我看来,这段代码需要更新:
#ifdef wxSUFFIX
#define wxSETUPH_PATH \
wxCONCAT6(../../../lib/, wxLIB_SUBDIR, /, wxTOOLKIT_PREFIX, wxSUFFIX, /wx/setup.h)
#else // suffix is empty
#define wxSETUPH_PATH \
wxCONCAT5(../../../lib/, wxLIB_SUBDIR, /, wxTOOLKIT_PREFIX, /wx/setup.h)
#endif
wx_vc15.sln
我使用in构建了 wxWidgets F:\pgbuild\wxWidgets\build\msw
。我试图将 pgAgent 构建为 CMake 项目,尽管构建说明说我需要使用 CMake 的 GUI 版本。
我按照说明进行构建pgAdmin
,但现在我想知道是否需要构建 pgAdmin(不要将它与 pgAgent 混为一谈)。
有什么建议吗?
更新:
我为 Windows 安装了 CMake,并为F:/pgbuild/pgAgent-3.4.0/build
. 返回了一些错误行:
然后单击configure
,然后单击gnerate
。这创建了 Visual Studio 项目文件。尝试构建它,得到上面的错误(wx/setup.h
:没有这样的文件或目录)。确切的错误是
Severity Code Description Project File Line Suppression State
Error C1083 Cannot open include file: '../../../lib/vc_dll/mswd/wx/setup.h': No such file or directory pgagent f:\pgbuild\wxwidgets\include\msvc\wx\setup.h 123