在我们的某个服务器pgAgent
上,服务不会以消息"ERROR: Couldn't register event handle"
开头(请参阅DBA Question)。所以我决定从源代码编译二进制文件,以进一步研究问题。
我安装了Visual Studio Community 2017 Edition。我下载了pgagent source code 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
中的F:\pgbuild\wxWidgets\build\msw
构建了wxWidgets。我试图将pgAgent构建为CMake项目,尽管the building instructions说我需要使用CMake的GUI版本。
我关注instructions to build pgAdmin
,但现在我想知道是否需要构建pgAdmin(不要混淆pgAgent)。
有任何建议吗?
更新
我安装了CMake for Windows并为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