1

libpq を使用して PostgreSQL データベースに接続しようとしていますが、これが機能したら、事前定義された関数を呼び出すつもりです。現在、conninfo 文字列を入力して、接続をテストしています。プロジェクトにさまざまなコード ディレクトリとライブラリ パス (Windows 7 の Netbeans 6.9.1、MinGW コンパイラ) を含める方法を最終的に見つけた後、次のエラーが見つかりました。

g++.exe -c -I/C/Program\ Files/PostgreSQL/9.0/include -MMD -MP -MF build/Debug/MinGW-Windows/main.od -o build/Debug/MinGW-Windows/main.o main .cpp

mkdir -p dist/Debug/MinGW-Windows

g++.exe -o dist/Debug/MinGW-Windows/toolboxconnect build/Debug/MinGW-Windows/main.o -L/C/Program\ Files/PostgreSQL/9.0/lib -lpq

c:/Program Files/PostgreSQL/9.0/lib/libpq.dll: ファイルが認識されません: ファイル形式が認識されません
collect2: ld は 1 終了ステータスを返しました

これが認識されなかった理由について多くのトピックを検索しましたが、64 ビットを実行しているため、dll を再構築する必要があると他の人に提案する人もいます。私のPostgreSQLインストールには、これらを再コンパイルするためのmakefileが付属しているとは思わず、そのまま使用するのに適していると思いました。私のリンカが私の libpq ライブラリやその他の種類の修正を好まない理由は他にありますか?

4

1 に答える 1

2

他の誰かがlibpq で同様の問題を抱えていました。

その回答に続く議論から、必要に応じて再構築できるように、ソース コードをダウンロードするためのリンクを次に示します。さまざまなバージョンが利用可能ですので、必要なバージョンをダウンロードしてください。

「あなたの依存関係は機能しませんか? ソースをダウンロードして自分で再コンパイルしてください!」という依存関係の地獄にあなたを固執させるのは本当に嫌いです。-- しかし残念ながら、現時点ではそれが postgres の唯一の選択肢のようです。

于 2011-03-17T07:10:09.607 に答える