pgadmin开发环境搭建

By | 2015/03/06

官方文档:https://wiki.postgresql.org/wiki/PgAdmin_Internals
也可以参考源码中的INSTALL文件。

环境:

windows7 x64

步骤:

下载并安装软件

安装wxwidgets2.8 or wxwidgets3.0
下载openssl,并安装到指定位置
下载postgresql windows bin版32位zip文件,并解压到指定位置
下载pgadmin源码,并解压到指定位置
下载并安装visual studio2013

添加环境变量

WXWIN C:\wxMSW-2.8.12
PGDIR C:\PostgreSQL\9.4
OPENSSL C:\OpenSSL-Win32

编译wxwidgets

用vs2013打开C:\wxWidgets-3.0.2\build\msw\wx.dsw,选择“批生成”,选中所有的debug和release后点击生成。

生成pgadmin

打开pgAdmin3.sln,点击生成即可。

需要注意的是,如果你使用的wxwidget3.0,在生成pgadmin时需要选择Debug 3.0选项,否则会提示找不到库文件。

 

 


 

 

ERROR1:vs2013编译wxwidgets2.8版本的时候提示:
..\..\src\msw\window.cpp(110) : fatal error C1083: Cannot open include file: ‘pbt.h’: No such file or directory
解决方法:
将widow.cpp文件109行
#if !defined __WXWINCE__ && defined NEED_PBT_H
改为:
#if !defined __WXWINCE__ && !defined NEED_PBT_H

 

ERROR2:无法打开wxmsw28ud_stc.lib文件
解决方法:
打开C:\wxMSW-2.8.12\contrib\build\stc\stc.dsw,选择debug&release,点击生成(如果使用wxwidgets3.0是不会遇到这个问题的)

 

ERROR3:d:\code\pgadmin3-1.20.0\pgadmin\include\db\pgconn.h(19): fatal error C1083: 无法打开包括文件: “libpq-fe.h”: No such file or directory
解决方法:
这是pgdir的环境变量设置有问题,指向正确的postgresql目录即可

 

ERROR4:fatal error LNK1120:217 个无法解析的外部命令
217error

解决方法:
这是因为库文件引用有问题,下载正确的依赖文件,配置正确的环境变量一般即可解决

 

ERROR5:fatal error LNK1120:91 个无法解析的外部命令
91error

解决方法:
这个是因为pgadmin需要的是32位postgresql的lib,所以可以使用32位lib目录中的dll文件替换掉PGDIR/lib中的dll文件(这个问题是因为我使用的是64位的系统,安装的也是64位的postgresql,但是pgadmin需要的是32位的,win7_64安装32位的postgresql又总是有问题,后来脑洞大开,将32位postgresql的lib覆盖掉64位postgresql的lib,问题竟然解决了……)

 

ERROR6:无法启动此程序,因为计算机中丢失XXXX.dll。
dllerror

解决方法:
只要将相应的dll文件拷贝到pgadmin的DEBUG目录中即可

 

ERROR7:应用程序无法正常启动(0xc000007b)。
007berror

解决方法:
这是6中拷贝的dll文件有问题,没有什么好的解决方法,只能一个一个试哪个dll有问题,然后再去下载一个新的dll,并拷贝到DEBUG目录中

 

ERROR8:error MSB4175. 无法创建Xaml任务。
xamlerror

解决方法:
不知道什么问题,我重新解压pgadmin源码,重新编译后问题没有复现

2 thoughts on “pgadmin开发环境搭建

  1. Lexy

    Hello!
    I’m trying to compile PgAdmin3 on Windows with Visual Studio 2013 and I’ve got LNK1120 problems. You wrote this is because of libraries. So can you please help me and tell me which versions of these libraries you’ve used while ago? I mean there’s so much time from now but maybe you can help :)

    Reply
    1. admin Post author

      check your openssl library, my is Win64OpenSSL-1_0_1L.exe. and check your vs2013 setting.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *