【发布时间】:2014-01-02 13:25:38
【问题描述】:
我想在 windows 7 中加载 qt5 psql 驱动程序。
我是这样加载库的:
qDebug() << QCoreApplication::libraryPaths ();
QString driverName = "QPSQL";
QSqlDatabase::addDatabase(driverName,"A connection to postgres");
输出显示:
("C:/QT/Qt5.1.0/5.1.0/msvc2010/plugins", "D:/xxx/build-xxx-Desktop_Qt_5_1_0_MSVC2010_32bit-Release/release")
QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
在目录:C:/QT/Qt5.1.0/5.1.0/msvc2010/plugins/,确实有sqldrivers子目录和qsqlpsql.dll, qsqlpsqld.dll, qsqlpsqld.pdb子目录。
我在ubuntu中加载psql库成功。
而我的.pro文件主要是这样的:
QT += core gui sql concurrent
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
unix {
LIBS += -lpython2.7
QMAKE_CXXFLAGS += -std=c++0x
}
win32 {
LIBS += \
C:/Python27/libs/python27.lib
}
我找不到失败的原因。
我需要在 .pro 文件中添加 libpqdll.lib 吗?但是我没有在ubuntu中使用LIBS += -lpq?
顺便说一句:我未能在 Windows 7 中使用 Visual Studio 2010 构建 libpq。但这是另一个问题。
这个问题可能很简单。但我已经尝试了一整天。
【问题讨论】:
-
如果驱动程序作为插件加载,则无需在链接时链接任何内容,但您必须确保在运行时找到所有依赖项(libpq,请查看 Dependency Walker 了解更多信息)加载插件时。
-
@FrankOsterfeld:感谢您通知 Dependency Walker 工具。我会试试的。
-
Similar question 与其他解决方案。
标签: windows qt postgresql