1

問題なく MySQL++ をコンパイルしました。いくつかの実行可能ファイル (resetdb.exe および simple1.exe) を起動すると、インストールが成功したかどうかをテストするために実行するように提案されましlibmysql.dllた。

そのパスを PATH 環境変数に追加しても、新しいコマンド プロンプトを起動した後でも問題は解決しませんでした。MySQL++ 実行可能ファイルがあるディレクトリに DLL をコピーする必要がありました。

これで DLL が見つかりましたが、次のエラーが発生します。

simple1.exe - Application error
The application was unable to start correctly (0xc000007b). 
Click OK to close the application.

コマンドラインから起動しても、これ以上の情報は得られません。

助けてくれてありがとう!

MySQL 5.5 - MySQL++ 3.0.9 - Windows 7 64 ビット - MINGW32 - GCC 4.4.0

4

1 に答える 1

1

0xC000007B は、実行可能ファイルが破損していることを意味する Windows エラーです。simple1.exeリンクしている DLL のいずれかまたは 1 つを参照できます。

これが発生する理由は次のとおりです。

  • 互換性のない方法でツールチェーンを混在させています。あなたの場合、simple1.exeMinGW GCC によってビルドされたピースと Visual C++ によってビルドされたピースを使用してビルドした可能性があります。MinGWは、MySQL C API DLL を含む、Visual C++ によって構築された純粋な C DLL と互換性がある必要があります。ただし、他の部品が干渉している可能性があります。MinGWC++ レベルで VC++ と互換性がありませんが、これが問題である場合は、まったくリンクされていないはずです。

  • の MySQL C API インポート ライブラリのビルド手順に従わなかったREADME-MinGW.txt。ステップを見逃したか、完全にスキップして、MySQL に同梱されているインポート ライブラリを使用しようとしています。

  • 以前の旋回では、リンクされたオブジェクト ファイルが壊れてしまいました。make clean all完全な再構築を強制するには、MySQL++ のトップ レベルで言ってみてください。

  • MySQL または MySQL++ のバージョンが混在しています。システムにそれぞれのバージョンが複数ある場合は、それらの使用が一貫していることを確認してください。つまり、プログラムを実行するのと同じ DLL から C API インポート ライブラリをビルドしexrun.bat、例を実行して、PATH にある別のバージョンではなく、ビルドしたばかりのバージョンの MySQL++ DLL を使用していることを確認します。

さらに、古いバージョンの MySQL++ を使用していることにも注意してください。Linux を使用している場合は、一部のディストリビューションにはまだ 3.0.9 が付属しているため、理解できました。しかし、MinGW を使用してソースから MySQL++ をビルドする必要があるため、3.1.0 を使用しない理由がわかりません。どこかからバイナリ ビルドを取得しましたか?

あなたのPATH問題については、これを行った後に MinGW シェルを再起動しましたか? PATH の更新は実行中のプログラムには影響しません。開始時に見た値を保持します。

于 2011-11-10T22:20:05.137 に答える