brightd

書式

$ brightd [オプション]

オプション

-v

詳細なログを出力する。

-d

デーモンとして実行する。

-P file

pid ファイルを生成する。

-u user

指定したユーザーの権限で実行する。 (デフォルトは “nobody”)

-w seconds

暗くするまでの秒数。 (デフォルトは 3)

-b brightness

暗くした時の明るさ。 (デフォルトは 0)

-f

明るさが最大になっている時も暗くする。 (デフォルトでは、明るさが最大の時は暗くしない。) AC 電源の時は2回指定してください。

-e regexp

正規表現を使って、イベントソースを選別する。 (/dev/input/by-path に適用)

-c path

明るさを制御するバックライトクラスを指定する。 (デフォルトは /sys/class/backlight/* の最初のノード)

-x

X11 Xss (X Screen Saver) extension を利用しない。

-r name

ユーザーにより明るさが変更された時に acpid が新しい明るさを書くための FIFO を作る。

Qt プログラムが突然終了する

プログラムを実行すると画面も表示されずに終了する。

Starting path\to\helloworld.exe...
プログラムが突然終了しました。
path\to\helloworld.exe crashed.
/path/to/helloworld を起動中...
プログラムが突然終了しました。
/path/to/helloworld がクラッシュしました

デバッグ実行すると次のメッセージが表示される。

During startup program exited with code 0xc0000139

f:id:renkin3q:20170908170346j:plain

原因1

C:\Windows\SysWOW64 に、他の libstdc++-6.dll がインストールされていたため。

解決方法1

ビルドに使った libstdc++-6.dll を実行ファイルと同じフォルダーにコピーする。

原因2

QApplication の派生クラスのコンストラクタの第1引数を “int argc” にしていたため。

解決方法2

“int &argc” に修正する。(QApplication の第1引数は “int &argc")

問題

.bbappend でファイルを追加した後、bitbake を実行したら次のエラーが発生した。

ERROR: Function failed: Fetcher failure for URL: 'file://<ファイル名>'. Unable to fetch URL from any source.
原因

ファイルのパスが探索パスに含まれていないため。

解決方法

ファイルが置いてあるフォルダーのパスを探索パスに追加する。 レシピに次の行を追加する。

  • フォルダー名=レシピ名の場合
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
  • フォルダー名が “files” の場合
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

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

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 のフォルダーパス)

PlainTextEdit ウィジェットのテキストを取得するメンバー関数

toPlainText() で取得する。初見殺し。

ui->plainTextEdit->toPlainText();

textChanged() と textEdited() の違い

  • textChanged() …テキストが変更されると emit される。

  • textEdited() …ユーザー操作によりテキストが変更されると emit される。

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” を追加する。