windows8.1 x64位编译pgmodeler过程记录

pgmodeler项目地址: https://github.com/pgmodeler/pgmodeler

pgmodeler官方编译wiki: http://www.pgmodeler.com.br/wiki/doku.php?id=installation

Requirements

  • GCC Development Tools 4.7 or above (Windows and Linux)
  • Latest Xcode (Mac OSX only)
  • Qt 5.x framework (5.1.x is recommended)
  • XML2 library
  • PostgreSQL database
  • pgModeler  source code (only when compiling)
实际使用: 

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!

你可能感兴趣的:(windows8.1 x64位编译pgmodeler过程记录)