postgresql - 尝试添加数据库时出现 Qt PostgreSQL 链接器错误
问题描述
我正在尝试设置与 postgre 数据库的连接,但出现链接器错误。
。轮廓:
QT -= gui
CONFIG += c++11 console
CONFIG -= app_bundle
CONFIG += sql
DEFINES += QT_DEPRECATED_WARNINGS
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
unix|win32: LIBS += -L$$PWD/../../PostgreSQL/12/lib/ -llibpq
INCLUDEPATH += $$PWD/../../PostgreSQL/12/include
DEPENDPATH += $$PWD/../../PostgreSQL/12/include
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/../../PostgreSQL/12/lib/libpq.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$PWD/../../PostgreSQL/12/lib/liblibpq.a
.cpp 文件:
#include <QCoreApplication>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSql>
#include <QtSql/QSqlDriver>
#include <QTextStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase mDB=QSqlDatabase::addDatabase("QPSQL");
return a.exec();
}
就是这样。我什至还没有尝试连接。错误是:
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QEAA@XZ) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: static class QSqlDatabase __cdecl QSqlDatabase::addDatabase(class QString const &,class QString const &)" (__imp_?addDatabase@QSqlDatabase@@SA?AV1@AEBVQString@@0@Z) referenced in function main
main.obj:-1: error: LNK2001: unresolved external symbol "__declspec(dllimport) public: static char const * const QSqlDatabase::defaultConnection" (__imp_?defaultConnection@QSqlDatabase@@2PEBDEB)
Postge 对于 Windows 是 64 位的,为此应用程序选择的编译器也是 64 MSVC2019 64 位。请帮忙。
解决方案
问题出在 .pro 文件中。它应该是:
QT += sql
并不是:
CONFIG += sql
推荐阅读
- c# - 你如何调试 3D 光线投射?
- node.js - 打字稿声明合并不能跨项目工作
- python - 在 Raspberry Pi 4 上简单地显示网络摄像头全屏的 Python 代码
- python - Selenium Instagram 登录 - 无法找到元素
- mysql - Liquibase:setDefaultSchema 不起作用
- c - C 在从套接字写入和读取时退出
- java - 映射列的 JPA 方法
- openstreetmap - osmnx 边界和 admin_level
- javascript - 使用实时 Firebase 的 If-else 条件
- pandas - 使用 pandas 在 PostgreSQL 中将 ndarray 存储为 blob