qtbase の compile タスクが "invalid conversion" エラーで失敗する

エラーメッセージ

build/tmp/work/armv7a-vfp-neon-mx5-poky-linux-gnueabi/qtbase/5.2.1-r0/qtbase-opensource-src-5.2.1/src/plugins/platforms/xcb/qxcbconnection.cpp:280:45: error: invalid conversion from 'EGLNativeDisplayType {aka void*}' to 'Display* {aka _XDisplay*}' [-fpermissive]
         m_connection = XGetXCBConnection(dpy);
                                             ^

環境

  • Yocto 1.6.2 (daisy)
  • meta-qt5 (daisy, commit 23405d3a66c308e0b2ea64308b834285850c5c9f)

原因

amd-gpu-x11-bin-mx51 レシピによってインストールされた eglplatform.h が X11 非互換版のため

解決方法

amd-gpu-x11-bin-mx51 レシピに次の行をアペンドする。

do_install_append() {
    # eglplatform_1.4.h contains X11 compatible headers
    rm ${D}${includedir}/EGL/eglplatform.h
    mv ${D}${includedir}/EGL/eglplatform_1.4.h ${D}${includedir}/EGL/eglplatform.h
}

参考文献

amd-gpu-x11-mx51: use x11 compatible eglplatform.h (392154fc) · Commits · yocto / meta-fsl-arm · GitLab

ERROR: 0:9: 'out' : syntax error syntax error

OpenGL プログラム実行時に次のメッセージが表示される。

ERROR: 0:9: 'out' : syntax error syntax error
コード
out vec4 fragColor;
...
fragColor = color;
原因

GLSL のバージョンが 1.3 未満のため。
‘out’ 修飾子は存在せず、出力変数は固定されているため。

解決方法

‘fragColor’ の代わりに ‘gl_FragColor’ を使う。

gl_FragColor = color;

ERROR: 0:6: 'in' : syntax error syntax error

OpenGL プログラム実行時に次のメッセージが表示される。

ERROR: 0:6: 'in' : syntax error syntax error
原因

GLSL のバージョンが 1.3 未満のため。

解決方法

‘in’ の代わりに ‘attribute’ を使う。

Shuriken で「名前(CN)が一致しません」と表示される

問題

メールチェック時に次のメッセージが表示される。

・名前(CN)が一致しません。

f:id:renkin3q:20170510131708j:plain

原因
解決方法

メールサーバーの名前にレンタルサーバーの名前を設定する。

メールサーバーの IP アドレスを調べる。

> ping mail.mydomain.com
mail.mydomain.com [192.168.0.1] ...

IP アドレスからレンタルサーバーの名前を調べる。

> ping -a 192.168.0.1
server.rental.com [192.168.0.1] ...

アカウント設定の[受信(POP3)サーバーの名前]の設定値をレンタルサーバーの名前に変更する。

server.rental.com
参考文献

Multiple .bb files are due to be built which each provide jpeg

問題

レイヤーに meta-multimedia を追加して、vlc をビルドすると、次のエラーが表示される。

ERROR: Multiple .bb files are due to be built which each provide jpeg (poky/meta/recipes-core/jpeg/jpeg_8d.bb meta-openembedded/meta-oe/recipes-core/jpeg/libjpeg-turbo_8d+1.3.1.bb).
 This usually means one provides something the other doesn't and should.

エラー: 複数の .bb ファイルがビルドされ、それぞれが jpeg を提供する (poky/meta/recipes-core/jpeg/jpeg_8d.bb meta-openembedded/meta-oe/recipes-core/jpeg/libjpeg-turbo_8d+1.3.1.bb).
 これは通常、一方が他に無い何かを提供する事を意味する。
環境
原因

vlc レシピの DEPENDS に libjpeg-turbo が含まれているため。

解決方法

local.conf に次の行を追加する。

PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
PREFERRED_PROVIDER_jpeg-native = "libjpeg-turbo-native"
参考文献