无法为Symbian设备创建QT postgresql插件

时间:2012-06-26 13:12:34

标签: c++ qt postgresql symbian

我正在尝试为Symbian设备创建postgresql插件,但我无法编译它。我正在使用Windows 7 64位。

我根据这篇文章做了一切:http://doc.qt.io/archives/qt-4.7/sql-driver.html#qpsql

C:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\psql>qmake "INCLUDEPATH+=C:\Program Files (x86)\PostgreSQL\8.3\include" "LIBS+=C:\Program Files (x86)\PostgreSQL\8.3\lib\libpq.lib" psql.pro
WARNING: (internal):1: Unescaped backslashes are deprecated.

所以看起来不错。然后...

C:\...drivers\psql>C:\QtSDK\Symbian\tools\sbs\win32\mingw\bin\make debug-gcce
sbs -c arm.v5.udeb.gcce4_4_1
python.exe is not recognized as an internal or external command, operable program or batch file.
make: *** [debug-gcce] Error 9009

我注意到,sbs_home设置为python目录,但它不在路径中,然后make无法找到脚本raptor_start.py:

C:\...drivers\psql>echo %sbs_home%
C:\QtSDK\Symbian\tools\sbs\win32\python27
C:\...drivers\psql>set path=%path%;%sbs_home%
C:\...drivers\psql>C:\QtSDK\Symbian\tools\sbs\win32\mingw\bin\make debug-gcce
sbs -c arm.v5.udeb.gcce4_4_1
python.exe: can't open file C:\QtSDK\Symbian\tools\sbs\win32\python27\python\raptor_start.py': [Errno 2] No such file or directory
make: *** [debug-gcce] Error 2
C:\...drivers\psql>set sbs_home=C:\QtSDK\Symbian\tools\sbs

所以,当我开始编译时,我收到了这个错误:

C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/include/stdapis/stlportv5/stl/_istream.c:650: warning: suggest parentheses around '&&' within '||' target     : epoc32\release\armv5\udeb\qsqlpsql.dll    [arm.v5.udeb.gcce4_4_1]
FAILED linkandpostlink  for arm.v5.udeb.gcce4_4_1: epoc32\release\armv5\udeb\qsqlpsql.dll
  mmp: qsqlpsql_dll.mmp
c:/qtsdk/symbian/tools/gcce4/bin/../lib/gcc/arm-none-symbianelf/4.4.1/../../../../arm-none-symbianelf/bin/ld.exe: warning: C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/usrt3_1.lib(ucppinit.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail
C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/build/psql/c_8d95259b570e1766/qsqlpsql_dll/armv5/udeb/qsql_psql.o: In function `qMakeError':    C:/QtSDK/QtSources/4.8.1/src/sql/drivers/psql/qsql_psql.cpp:175: undefined reference to `PQerrorMessage'

....许多未定义的引用......

C:/QtSDK/QtSources/4.8.1/src/sql/drivers/psql/qsql_psql.cpp:117: undefined reference to `PQfreemem'
collect2: ld returned 1 exit status

mingw32-make[1]: *** [C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/qsqlpsql.dll] Error 1
sbs: error: The make-engine exited with errors.

sbs : warnings: 3
sbs : errors: 2

built 'arm.v5.udeb.gcce4_4_1'

Run time 5 seconds

sbs: build log in C:\QtSDK\Symbian\SDKs\Symbian3Qt474\epoc32\build\Makefile.2012-06-26-15-03-12.78-2996.log
make: *** [debug-gcce] Error 1

有人有想法,有什么用吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试使用针对Windows的预编译二进制postgresql客户端库构建Symbian / ARM应用程序。这将永远不会奏效。您引用的instructions仅显示如何本机构建OS X,Unix和Mac目标。你正在为Symbian进行交叉编译。

您首先需要获取为Symbian编译的postgresql客户端库的二进制版本。它可能存在于那里,或者您可能需要自己编译它。我不认为该库支持Symbian作为目标,我不能轻易找到任何Symbian端口下载。你可能会因为一个简单的解决方案而运气不好。但是,端口可能不是完全不可能的 - 也许特定于平台的代码已足够本地化。