windows xp
postgresql 9.3
qt 4.8.5
mingw 4.8.0
我將 postgresql 9.3 安裝到 C:\pgsql9.3
qt 文件一樣有提到如何做:
qt-everywhere-opensource-src-4.8.5/doc/html/sql-driver.html#qpsql
cd $QTDIR/src/plugins/sqldrivers/psql qmake "INCLUDEPATH+=/usr/include/pgsql" "LIBS+=-L/usr/lib -lpq" psql.pro make
不過和 build mysql driver 類似, 我沒用這方法, 修改了以下檔案。
修改 src/plugins/sqldrivers/psql/psql.pro
cat src/plugins/sqldrivers/psql/psql.pro TARGET = qsqlpsql SOURCES = main.cpp include(../../../sql/drivers/psql/qsql_psql.pri) INCLUDEPATH+="C:\pgsql9.3\include" LIBS+="C:\pgsql9.3\lib\libpq.dll" include(../qsqldriverbase.pri)
不知道是不是因為我使用 static link 的關係, 我還必須修改 src/sql/drivers/psql/qsql_psql.pri
cat src/sql/drivers/psql/qsql_psql.pri HEADERS += $$PWD/qsql_psql.h SOURCES += $$PWD/qsql_psql.cpp LIBS += "c:\pgsql9.3\lib\libpq.lib" INCLUDEPATH += "c:\pgsql9.3\include" unix|win32-g++* { LIBS += $$QT_LFLAGS_PSQL !contains(LIBS, .*pq.*):LIBS += -lpq QMAKE_CXXFLAGS *= $$QT_CFLAGS_PSQL } else { !contains(LIBS, .*pq.*):LIBS += -llibpq -lws2_32 -ladvapi32 }
D:\qt-everywhere-opensource-src-4.8.5>configure -static -release -no-exceptions -no-qt3support -qt-sql-psql -qt-sql-odbc -qt-sql-sqlite -no-opengl
不過編譯出來的 qt 程式需相依 pgsql 9.3 很多 dll, 我直接複製到 C:\pgsql9.3\bin, 省下那些尋找 dll 的麻煩問題。
產生後的執行檔需要不少 pgsql dll, 我直接把 qt 執行檔 copy 到 pgsql 目錄下 (C:\pgsql9.3\bin), 省下找尋 dll 的麻煩事情。
qt/windows static link, 請參考:
in windows using static link for QT application
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。