-1

我正在尝试为 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

有没有人知道,它有什么用?

4

1 回答 1

0

您正在尝试使用 Windows 的预编译二进制 postgresql 客户端库构建 Symbian/ARM 应用程序。这永远行不通。您参考的说明仅显示了如何为 OS X、Unix 和 Mac 目标本地构建。您正在为 Symbian 进行交叉编译。

您首先需要获取为 Symbian 编译的 postgresql 客户端库的二进制版本。它可能存在,或者您可能需要自己编译它。我认为该库不支持将 Symbian 作为目标,而且我也找不到任何 Symbian 端口供下载。对于一个微不足道的解决方案,您可能不走运。不过,移植可能不是完全不可能的——也许特定于平台的代码已经足够本地化了。

于 2012-06-28T04:28:25.233 回答