Beaglebone blackにQt5.5.1をインストール(2)

UbuntuにsambaでBBBをマウントしてソースから構築してみる

環境

HOST
Ubuntu 15.10 : 4.2.0-18-generic

BeagleboneBlack
Debian GNU/Linux 8 :  3.8.13-bone74

クロスコンパイル用ツール

gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.xz を/home/qt-bbb/optに展開

Ubuntu上にqt5.5のソースを用意

qt5.5.1のソースを/home/qt-bbb/qt5 に展開

qt5/qtbase/mkspecs/devices/linux-beagleboard-g++/ を
qt5/qtbase/mkspecs/devices/linux-bbb-g++ にコピーして
qt5/qtbase/mkspecs/devices/linux-bbb-g++/qmake.conf を編集

#
# qmake configuration for the BeagleBoard and BeagleBoard xM boards
# http://beagleboard.org/

MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)

load(device_config)

QT_QPA_DEFAULT_PLATFORM = eglfs

# modifications to g++.conf
QMAKE_CC = $${CROSS_COMPILE}gcc
QMAKE_CXX = $${CROSS_COMPILE}g++
QMAKE_LINK = $${QMAKE_CXX}
QMAKE_LINK_SHLIB = $${QMAKE_CXX}

# modifications to linux.conf
QMAKE_AR = $${CROSS_COMPILE}ar cqs
QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
QMAKE_NM = $${CROSS_COMPILE}nm -P
QMAKE_STRIP = $${CROSS_COMPILE}strip

COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard # <-- ここを変更
#modifications to gcc-base.conf
QMAKE_CFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS_RELEASE += -O3

QMAKE_LIBS += -lrt -lpthread -ldl

# Extra stuff (OpenGL, DirectFB, ...)
QMAKE_INCDIR_EGL =
QMAKE_LIBDIR_EGL =
QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENVG = $${QMAKE_LIBDIR_EGL}

QMAKE_LIBS_EGL = -lEGL -lIMGegl -lsrv_um
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL}
QMAKE_LIBS_OPENVG = -lOpenVG $${QMAKE_LIBS_EGL}

# No need for any special EGL device integration.
# Prioritize the default, compiled-in integration over any plugins.
EGLFS_DEVICE_INTEGRATION = none

# Sanity check
deviceSanityCheckCompiler()

Configure

$ cd qt5
$ mkdir build-bbb
$ cd build-bbb
$  ../configure -opensource -confirm-license -no-pch -prefix /opt/qt5.5-bbb -hostprefix /mnt/bbb/opt/qt5.5-bbb -release -force-debug-info -device linux-bbb-g++ -make libs -nomake tests -nomake examples -device-option CROSS_COMPILE=/home/qt-bbb/opt/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/arm-linux-gnueabihf- -sysroot /mnt/bbb -v

$ make -j 4

$ sudo make install

出来上がったホストの/opt/qt5.5-bbbをBBBの/optへコピーする
BBB上でldconfigを使ってライブラリを有効にする(下記参照)

エラーメッセージに対応してBBBに追加でインストールしたパッケージ

# apt-get install linux-headers-3.8.13-bone74 
# apt-get install libsdl-dev libxcb1-dev libxcb-image0-dev libxcb-icccm4-dev libxcb-keysyms1-dev

QtcreatorでQtquickが使えないのでBBBからUbuntuに/opt/qt5.5-bbbをコピーしたら使えるようになった
上のconfigure option の -hostprefix /opt/qt5.5-bbbはどういう意味があるのだろうか?

Qt5のアプリケーションを実行できるようにBBBでqt5.5のライブラリを有効にする
環境変数 LD_LIBRARY_PATHに /opt/qt5.5-bbb/libを追加しても良いがシステムに設定する

# nano /etc/ld.so.conf.d/qt5.5.conf   <== 新規ファイル編集

/opt/qt5.5-bbb/lib     <== ファイルにこの行を追加

# ldconfig        <== ライブラリを追加
# ldconfig -v     <== 確認

 

 

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)