Ubuntu 24.04编译Qt 6.8.1无法加载QPSQL等SQL驱动求助
解决QPSQL驱动未加载及构建失败问题
1. 确认PostgreSQL安装路径与环境变量
- 执行以下命令获取PostgreSQL实际安装前缀:
源码编译默认路径通常为pg_config --prefix/usr/local/pgsql,后续步骤请替换为你的实际路径。 - 配置环境变量,确保系统能识别PostgreSQL的头文件与库:
将上述命令添加至export PKG_CONFIG_PATH=/usr/local/pgsql/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH export PATH=/usr/local/pgsql/bin:$PATH~/.bashrc可永久生效,执行source ~/.bashrc使配置立即生效。
2. 安装驱动构建依赖
Ubuntu环境下需确保基础构建工具与依赖包已安装:
sudo apt install build-essential cmake libpq-dev
3. 重新构建QPSQL驱动
Qt SQL驱动源码位于Qt安装目录的src/plugins/sqldrivers下(示例路径为/usr/local/Qt-6.8.1/src/plugins/sqldrivers),按以下步骤操作:
- 清理并创建新构建目录:
cd /usr/local/Qt-6.8.1/src/plugins/sqldrivers rm -rf build mkdir build && cd build - 用CMake指定PostgreSQL路径并配置构建:
cmake .. -G Ninja \ -DCMAKE_PREFIX_PATH=/usr/local/Qt-6.8.1 \ -DPGSQL_CONFIG=/usr/local/pgsql/bin/pg_config \ -DQT_BUILD_EXAMPLES=OFF \ -DQT_BUILD_TESTS=OFF \ -DBUILD_psql=ON - 编译并安装驱动:
安装完成后,驱动文件会被部署至ninja ninja install/usr/local/Qt-6.8.1/plugins/sqldrivers/libqsqlpsql.so。
4. 验证驱动可用性
- 创建Qt测试项目,添加以下代码检查驱动列表:
#include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug() << "Available drivers:" << QSqlDatabase::drivers(); return a.exec(); } - 若输出未包含
QPSQL,检查驱动依赖是否正常:
若ldd /usr/local/Qt-6.8.1/plugins/sqldrivers/libqsqlpsql.so | grep libpqlibpq.so无法被找到,可修改驱动的rpath:patchelf --set-rpath /usr/local/pgsql/lib /usr/local/Qt-6.8.1/plugins/sqldrivers/libqsqlpsql.so
5. 额外排查点
- 若CMake仍提示
PostgreSQL_FOUND=FALSE,确认pg_config可正常执行,检查pg_config --includedir与pg_config --libdir输出是否正确。 - 若Qt为源码编译,需确认编译时启用了插件支持(默认开启),重新编译Qt时可追加
-sql-psql选项直接内置驱动。
内容的提问来源于stack exchange,提问作者KingWm
相关产品推荐
相关产品推荐

