現在、AM1808 プロセッサで動作するハードウェア向けのアプリケーション開発のための QT に取り組んでいます。
現在、QT Creator とコンパイラ バージョン Qt 4.8.7 を使用してアプリを開発しています。
Qt 5.7 でアップグレードする予定です。そのために、対応するパッケージを からダウンロードします。
これを正常にダウンロードしたので、現在のアーム ツールチェーンに従って構成する必要があります。
以下のようにqmake.confを変更しました。
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
// modifications to g++.conf
//QMAKE_CC = arm-linux-gnueabi-gcc
//QMAKE_CXX = arm-linux-gnueabi-g++
//QMAKE_LINK = arm-linux-gnueabi-g++
//QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
// modifications to linux.conf
//QMAKE_AR = arm-linux-gnueabi-ar cqs
//QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
//QMAKE_NM = arm-linux-gnueabi-nm -P
//QMAKE_STRIP = arm-linux-gnueabi-strip
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
その後、設定コマンド ./configure -opensource -confirm-license -prefix /usr/local/Qt5 -no-pch -xplatform linux-arm-gnueabi-g++ を実行します
しかし、次のエラーが見つかりました。
システム アーキテクチャ: 'arm' ホスト アーキテクチャ: 'i386' arm-none-linux-gnueabi-g++ -c -fvisibility=hidden fvisibility.c シンボルの可視性制御を有効にしました。
cc1plus: エラー: 認識されないコマンド ライン オプション '-fuse-ld=gold' arm-none-linux-gnueabi-g++ -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c bsymbolic_functions.c:2: 2: エラー: #error "このアーキテクチャのシンボリック関数バインディングが壊れている可能性があるため、無効にします (QTBUG-36129 を参照してください)。"
シンボリック関数バインディングが無効になっています。C++14 をチェックしています...
arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++1y -Wall -W -fPIC -I. -I../../../mkspecs/linux-arm-gnueabi-g++ -o c++14.o c++14.cpp
cc1plus: エラー: 認識されないコマンド ライン オプション '-std=gnu++1y' make: *** [c++14.o] エラー 1
C++14 が無効になっています。
デフォルトの C++ 標準版をチェックしています... arm-none-linux-gnueabi-g++ -pipe -O2 -Wall -W -fPIC -I. -I../../../mkspecs/linux-arm-gnueabi-g++ -o c++default.ii -E c++default.cpp
デフォルトで C++ 標準版が有効になっています。
64 ビット std::atomic をチェックしています... arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/linux-arm-gnueabi-g++ -oatomic64.oatomic64.cpp
cc1plus: エラー: 認識されないコマンド ライン オプション '-std=gnu++11'
make: *** [atomic64.o] エラー 1
64 ビット std::atomic が無効になっています。
-latomic で 64 ビット std::atomic をチェックしています... arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/linux-arm-gnueabi-g++ -oatomic64.oatomic64.cpp
cc1plus: エラー: 認識されないコマンド ライン オプション '-std=gnu++11'
make: *** [atomic64.o] エラー 1
-latomic の 64 ビット std::atomic が無効になりました。
関数ポインターの std::atomic をチェックしています... arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/linux-arm-gnueabi-g++ -o atomicfptr.o atomfptr.cpp cc1plus: エラー: 認識されないコマンド ライン オプション '-std=gnu++11'
make: *** [atomicfptr.o] エラー 1
関数ポインターの std::atomic が無効になりました。
エラー: 関数ポインターで失敗する std::atomic 実装が検出されました。
/opt/qt-everywhere-opensource-src-5.7.1/qtbase/config.tests/common/atomicfptr にある標準ライブラリ ベンダーに対応するパッチを適用してください。
そのため、この qt5 バージョンをコンパイルする正しい方法を提案してください。