pgmodeler项目地址: https://github.com/pgmodeler/pgmodeler
pgmodeler官方编译wiki: http://www.pgmodeler.com.br/wiki/doku.php?id=installation
pgmodeler-0.7.2
postgresql-9.4.0-1-windows
libxml2-2.9.1-win32-x86 //此前试过libxml2-2.9.2-win32-x86_64,出现libxml2-2.dll: file not recognized错误
qt-opensource-windows-x86-mingw491_opengl-5.4.0 //此版本自带gcc4.9.1
出错记录及解决方案:
0.关于pgmodeler.pro的配置
只需要改动windows{}部分,如下:
windows {
PGSQL_LIB = C:/PostgreSQL/9.4/bin/libpq.dll
PGSQL_INC = C:/PostgreSQL/9.4/include
XML_INC = C:/Qt/Qt5.4.0/5.4/mingw491_32/include
XML_LIB = C:/Qt/Qt5.4.0/5.4/mingw491_32/bin/libxml2-2.dll
}
1.mingw491_32\bin\libxml2-2.dll: file not recognized: File format not recognized //无法识别libxml2-2.dll的格式
没办法,不识别那就找个可以识别的xml2 library.亲测libxml2-2.9.1-win32-x86可正确识别
2.提示#include ***.h等等file不存在
卸载PostgresSQL,重新安装时注意安装在名称不带空格的文件夹下. //编译器比较偏UNIX,对WIN的文件路径格式并不是十分友好,如采取默认安装,会装在C:\Program Files (x86)目录下,就会出现头文件调用失败的问题
3.cmd窗口敲make提示无此命令
PATH设置问题,这里我使用的是qt 5.4.0自带的mingw4.9.1,默认路径在C:\Qt\Qt5.4.0\Tools\mingw491_32\bin所以环境变量PATH最后需要补全,另外默认的make.exe在mingw里是mingw32-make.exe,所以有两种选择,一是用mingw32-make代替make,或者把mingw32-make.exe改成make.exe使用.建议保留默认配置,即用mingw32-make代替mingw32-make
编译指令:
qmake pgmodeler.pro #生成makefile
mingw32-make
mingw32-make install
一切顺利的话pgmodeler-0.7.2目录下会生成build目录,这里的东西就是编译结果,你可以双击运行pgmodeler.exe,然后问题又来了:
"无法启动此程序,因为丢失libiconv-2.dll......云云"
解决方法:既然说丢失那就找个libiconv-2.dll给他补上,自行搜索libiconv-2.dll后放在pgmodeler.exe同级目录下即可
再次启动pgmodeler.exe,成功!
add:程序运行后提示插件无法激活的问题
原来是因为目录树不正确,默认编译后的目录树是这样
C:\COMPILE\PGMODELER-0.7.2\BUILD\PLUGINS
├─dummy
│ │ dummy.json
│ │ dummy.png
│ │
│ ├─build
│ │ dummy.dll
│ │ libdummy.a
│ │
│ └─lang
│ dummy.en_US.qm
│ dummy.en_US.ts
│
└─xml2object
│ xml2object.json
│ xml2object.png
│
└─build
libxml2object.a
xml2object.dll
修正后应该是这样子:
├─dummy
│ │ dummy.dll
│ │ dummy.json
│ │ dummy.png
│ │ libdummy.a
│ │
│ └─lang
│ dummy.en_US.qm
│ dummy.en_US.ts
│
└─xml2object
libxml2object.a
xml2object.dll
xml2object.json
xml2object.png
即把build内的*.dll和*.a取出来放到上级目录即可,以下是官方关于插件目录结构的示意
[PGMODELER_PLUGINS_DIR]/ | + - pluginA/ + - (lib)*(pluginA.)(so|dylib|dll) (library) | + - pluginA.png (icon)重新运行pgmodeler,插件成功激活,great!