📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
n |
|||
| 1,453行目: | 1,453行目: | ||
<br> | <br> | ||
==== Qtのビルド ==== | ==== Qtのビルド ==== | ||
===== CMakeツールチェーンファイルの作成 ===== | |||
ターゲット向けQt 6ライブラリのビルドで使用するCMakeツールチェーンファイルを作成する。<br> | |||
vi ToolChain_for_PinePhone.cmake | |||
<br> | |||
<syntaxhighlight lang="cmake"> | |||
# ToolChain_for_PinePhone.cmake | |||
cmake_minimum_required(VERSION 3.18) | |||
include_guard(GLOBAL) | |||
set(CMAKE_SYSTEM_NAME Linux) | |||
set(CMAKE_SYSTEM_PROCESSOR arm) | |||
# Set path to System Root. | |||
set(TARGET_SYSROOT /run/media/suse/SAMSUNG860EVO/Qt_Embedded/SystemRoot_Manjaro) | |||
set(CMAKE_SYSROOT ${TARGET_SYSROOT}) | |||
# Set path to package config. | |||
set(ENV{PKG_CONFIG_PATH} ${TARGET_SYSROOT}/usr/lib/pkgconfig) | |||
set(ENV{PKG_CONFIG_LIBDIR} ${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/share/pkgconfig) | |||
set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT}) | |||
# Set path to Cross Compiler. | |||
set(CMAKE_C_COMPILER <クロスコンパイル向けGCCまたはClangのパス>) | |||
set(CMAKE_CXX_COMPILER <クロスコンパイル向けG++またはClang++のパス>) | |||
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib -L${TARGET_SYSROOT}/usr/lib") | |||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib -L${TARGET_SYSROOT}/usr/lib") | |||
set(QT_COMPILER_FLAGS "-march=armv8-a -mtune=cortex-a53") | |||
#set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe") | |||
set(QT_COMPILER_FLAGS_RELEASE "-O3") | |||
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed") | |||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | |||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | |||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | |||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) | |||
set(CMAKE_THREAD_LIBS_INIT "-lrt -lpthread -ldl") | |||
set(CMAKE_HAVE_THREADS_LIBRARY 1) | |||
set(CMAKE_USE_WIN32_THREADS_INIT 0) | |||
set(CMAKE_USE_PTHREADS_INIT 1) | |||
set(THREADS_PREFER_PTHREAD_FLAG ON) | |||
</syntaxhighlight> | |||
<br> | |||
===== Qt Baseのビルド ===== | ===== Qt Baseのビルド ===== | ||
Qtをビルドするため、ビルド用のディレクトリを作成する。<br> | Qtをビルドするため、ビルド用のディレクトリを作成する。<br> | ||
mkdir /<Qtのソースコードがあるディレクトリ>/../build && cd /<Qtのソースコードがあるディレクトリ>/../build | mkdir /<Qtのソースコードがあるディレクトリ>/../build && cd /<Qtのソースコードがあるディレクトリ>/../build | ||
<br> | <br> | ||
CMakeファイルを実行する。<br> | |||
# Set PinePhone's system root. | |||
MANJARO_SYSROOT="<PinePhoneのシステムルートディレクトリ>" | |||
export | export PATH="<ホスト向けQt 6がインストールされたディレクトリ>/bin:$PATH" | ||
export | export LD_LIBRARY_PATH="<ホスト向けQt 6がインストールされたディレクトリ>/lib:$LD_LIBRARY_PATH" | ||
export PKG_CONFIG_PATH=<PinePhoneのシステムルートディレクトリ>/usr/lib/pkgconfig | |||
export | export PKG_CONFIG_LIBDIR=<PinePhoneのシステムルートディレクトリ>/usr/lib/pkgconfig:<PinePhoneのシステムルートディレクトリ>/usr/share/pkgconfig | ||
../ | # Compile Qt 6 for PinePhone | ||
cmake -GNinja \ | |||
- | ../qt-everywhere-src-6.x.x \ | ||
- | -DCMAKE_BUILD_TYPE=Release \ | ||
- | -DQT_FEATURE_eglfs_egldevice=ON \ | ||
- | -DQT_FEATURE_eglfs_gbm=ON \ | ||
- | -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON \ | ||
- | -DQT_BUILD_EXAMPLES=OFF \ | ||
- | -DQT_BUILD_TESTS=OFF \ | ||
- | -DBUILD_qtdoc=OFF \ | ||
- | -DBUILD_qtwebengine=OFF \ | ||
- | -DBUILD_qtwebview=OFF \ | ||
- | -DQT_HOST_PATH=<ホスト向けQt 6がインストールされたディレクトリ> \ | ||
- | -DCMAKE_STAGING_PREFIX=<ターゲット向けQt 6をインストールするディレクトリ> \ | ||
- | -DCMAKE_INSTALL_PREFIX=<おそらく使用しない> \ | ||
- | -DCMAKE_PREFIX_PATH=<PinePhoneのシステムルートディレクトリ>//usr/lib/ \ | ||
- | -DCMAKE_TOOLCHAIN_FILE=<ターゲット向けQt 6ライブラリのビルドで使用するCMakeツールチェーンファイルのパス> \ | ||
-DQT_QMAKE_TARGET_MKSPEC=<Qt向けPinePhoneのデバイスファイル 例: devices/linux-pinephone-g++> | |||
<br> | <br> | ||
Qtをビルドおよびインストールする。<br> | Qtをビルドおよびインストールする。<br> | ||
cmake --build . --parallel $(nproc) | |||
cmake --install . | |||
<br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||