ビルド前にプログラムの実行を停止する

Qt Creator でプログラム実行中にビルドを実行すると次のエラーが発生する。

:-1: エラー: cannot open output file debug\hello.exe: Permission denied
collect2.exe:-1: エラー: error: ld returned 1 exit status

プログラムを終了して、ビルドし直すと解消するが、面倒なので自動的に終了させるようにする。

次のバッチファイルを作成する。

taskkill.bat

taskkill.exe /im %1 /t 2>nul
exit 0

プロジェクトのビルドステップの Make ステップの前に独自プロセスステップを追加する。

  • コマンド: taskkill.bat
  • 引数: <実行ファイル名>
  • 作業ディレクトリー: <taskkill.bat のフォルダーパス>

QSqlDatabase: QMYSQL driver not loaded

QMYSQL プラグインのロードに失敗する。ロード時に次のメッセージが表示される。

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
原因

qsqlmysql.dll が libmysql.dll を参照できなかったため。

解決方法

環境変数 PATH に libmysql.dll のフォルダーパス “C:\Program Files (x86)\MySQL\MySQL Server 5.7\lib” を追加する。

MySQL 5.7 の Configuration wizard で [Next] ボタンが表示されない

環境
原因

画面の DPI が “小 - 100%” 以外になっているため。

解決方法
  • [Alt] + [N] キーを押す。

または

  • 画面の DPI を “小 - 100%” に変更する。
参考文献

MySQL Bugs: #85973: MySQL Installer, cannot configure (No "Next" button in installer screen)

windeployqt 0xc000007b

windeployqt で依存ファイルを集めた後の Qt アプリケーション起動時に次のエラーが表示される。

アプリケーションを正しく起動できませんでした ()。 [OK] をクリックしてアプリケーションを閉じてください。

f:id:renkin3q:20170804154441j:plain

原因

  • ビルド時と異なるバージョンの windeployqt が実行され、異なるバージョンの DLL ファイルが収集されたため。
    • 著者の場合は Anaconda のパスが優先になっており、Anaconda に含まれている windeployqt が実行されたため。