余談:
このメモを書くために、私は単にドキュメントを引用しているだけで実際には機能しない膨大な数の指示がインターネット上に存在することに勇気づけられました。 なぜなら 私は時々Qtで作業しているため、Qt5でこの問題がどのように処理されるかはわかりません。問題
デフォルトのインストール(少なくともバージョン4.8.4の場合)には、Postgresを操作するためのドライバーが含まれていません。
公式ドキュメントでは、
http://qt-project.org/doc/qt-4.8/sql-driver.html#qpsqlを使用して非常に簡単な方法で収集することを提案していますが、すでにビルドされたQtをダウンロードした場合、アセンブリがなくてもかなり困惑しますエラーが、何も動作しません。
QtとSQL
ここでは、QtでSQLドライバーを操作する機能についてもう少し詳しく説明します。 実装には2つの可能なオプションがあります。
- QtSqlライブラリにドライバーを埋め込む
- ドライバーをプラグインとしてコンパイルする
Qt(
http://doc.qt.digia.com/4.7/configure-options.html )を構築するとき、次のオプションがこれを担当します
- -qt-sql- <driver> QtライブラリでSQL <driver>を有効にします。
- -plugin-sql- <driver>実行時にリンクされるプラグインとしてSQL <driver>を有効にします。
このパスに沿って、インストール内のどのドライバーがプラグインとしてアセンブルされているかを確認できます。
%QTDIR%\plugins\sqldrivers
解決策
そして今、私たちは問題の本質とその簡単な解決策に目を向けます。
私の知る限り、デフォルトでは、SQLドライバーは静的に構築されます。 QtSqlとのリンク用。 したがって、ドキュメントによると、アセンブリの結果として、* .aファイルのみが取得されます。このファイルは、既存のQtSql4.dllに添付することはできません。 ネットワークでよく見られる出力は、構成中に必要なドライバーを含めることでQtを完全に再構築することです。 原則として、オプションは正常ですが、非常に長いだけです。
当然、メイクファイルを手動で修正し、必要なドライバーをプラグインとしてビルドできますが、これは恩恵のないタスクです。コンピューターに任せてください。
さらに、必要なライブラリとヘッダーファイルを備えたPostgreSQLがC:\ psqlにインストールされていることを前提としています(通常はProgram Filesに配置し、C:\ psqlはjunctionです)。
それでは、すべてが迅速かつ簡単です。
- Qtコマンドラインを実行します(スタート->プログラム-> Qt by Digia ...-> Qt xxx Command Promt)
- ソースを設定し、必要なドライバーをプラグインとして有効にします
configure -I "c:\psql\include" -L "c:\psql\lib" -plugin-sql-psql
cd src\plugins\sqldrivers\psql
qmake psql.pro
make debug
make release
Checking%QTDIR%\ plugins \ sqldrivers。 ビンゴ!