Qt 5 実行時の環境変数

  • QT_DEBUG_PLUGINS=1 (Qt 4.8 OK)

    プラグインの読み込みに関する情報を表示する。

  • QT_XCB_DEBUG_XINPUT=“” (Qt 4.8 NG, Qt 5.2 OK)

    Xinput から受け取ったデータを表示する。

  • QT_XCB_DEBUG_XINPUT_DEVICES

    XInput デバイスに関する情報を表示する。

evdev とは

Linux カーネル内の汎用の入力イベントインターフェース。 デバイスドライバーからの低次の入力イベントを標準化して、/dev/input/ ディレクトリーのキャラクターデバイスとして利用可能にする。

参考文献

error: pathspec 'path/to/file' did not match any file(s) known to git.

エラー: pathspec 'path/to/file' は git の知る、いかなるファイルとも合致しません。

error: unable to create file path/to/file: Invalid argument

問題

git clone 実行中に次のエラーが表示される

error: unable to create file path/to/file: Invalid argument
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

エラー: ファイル path/to/file を作成できません: 無効な引数
致命的: ワーキングツリーをチェックアウトできません
警告: クローンは成功しましたが、チェックアウトは失敗しました。
'git status' でチェックアウトされたものを点検して、
'git checkout -f HEAD' でチェックアウトをリトライできます
環境
  • Git 2.10.22
  • Widnows 7 Professional 64-bit
原因

チェックアウトするファイルの名前に Windows では使えない文字が含まれているため。

解決方法

該当するファイルの名前を変更する、または不要なファイルであればリポジトリーから削除する。

Parentheses expected, signal

問題

ビルド時に次のエラーが発生する。

コード

connect(this, SIGNAL(trigger), this, SLOT(onTrigger));

エラー

Object::connect: Parentheses expected, signal <クラス名>::<シグナル名> in ..\<ファイル名>:<行番号>

Object::connect: 丸括弧が予期される, signal <クラス名>::<シグナル名> in ..\<ファイル名>:<行番号>
原因

シグナル名/スロット名の後ろに丸括弧を書いていないため。

解決方法

シグナル名/スロット名の後ろに丸括弧を書く。

connect(this, SIGNAL(trigger()), this, SLOT(onTrigger()));

void value not ignored as it ought to be

問題

コンパイル時に次のエラーが発生する。

コード

void(*p)() = hello();

エラー

error: void value not ignored as it ought to be

エラー: void 値が無視されていない
原因

関数名の後に括弧を書いていたため。

解決方法

括弧を削除する。

void(*p)() = hello;

qtbase のビルドが失敗する

問題

“qtbase” をビルドすると、次のエラーが発生する。

.../src/plugins/platforms/xcb/qxcbconnection.cpp: In constructor 'QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, const char*)':
.../src/plugins/platforms/xcb/qxcbconnection.cpp:280:45: error: invalid conversion from 'EGLNativeDisplayType {aka void*}' to 'Display* {aka _XDisplay*}' [-fpermissive]
         m_connection = XGetXCBConnection(dpy);
                                             ^
In file included from .../src/plugins/platforms/xcb/qxcbconnection.cpp:72:0:
.../usr/include/X11/Xlib-xcb.h:13:19: error:   initializing argument 1 of 'xcb_connection_t* XGetXCBConnection(Display*)' [-fpermissive]
 xcb_connection_t *XGetXCBConnection(Display *dpy);
                   ^
.../src/plugins/platforms/xcb/qxcbconnection.cpp:281:51: error: invalid conversion from 'EGLNativeDisplayType {aka void*}' to 'Display* {aka _XDisplay*}' [-fpermissive]
         XSetEventQueueOwner(dpy, XCBOwnsEventQueue);
                                                   ^
In file included from .../src/plugins/platforms/xcb/qxcbconnection.cpp:72:0:
.../usr/include/X11/Xlib-xcb.h:16:6: error:   initializing argument 1 of 'void XSetEventQueueOwner(Display*, XEventQueueOwner)' [-fpermissive]
 void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner);
      ^
...
make[5]: *** [.obj/qxcbconnection.o] Error 1
make[5]: *** Waiting for unfinished jobs....
......
make[4]: *** [sub-xcb-plugin-pro-make_first-ordered] Error 2
...
make[3]: *** [sub-xcb-make_first] Error 2
...
make[2]: *** [sub-platforms-make_first] Error 2
...
make[1]: *** [sub-plugins-make_first] Error 2
...
make: *** [sub-src-make_first] Error 2
ERROR: oe_runmake failed
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_compile (log file is located at .../temp/log.do_compile)
環境
  • Yocto 1.6.2 (daisy)
  • meta-qt5 (daisy, commit 23405d3a66c308e0b2ea64308b834285850c5c9f)
解決方法

qtbase レシピに次の行を加える。

PACKAGECONFIG_remove = "xcb"
参考文献