Ubuntu18.04 は Qt クロスコンパイル環境をインストールし、ターゲット マシンは rk3288 です

この記事は、コンパイル環境として Ubuntu18.04 64 ビット イメージを使用し、仮想マシン条件下で正常にインストールされました。

  1. 材料を準備する必要がある
    • クロスコンパイラー: ターゲット マシンが 64 ビットの場合に使用します。

gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu (64 ビット クロスコンパイラー).tar.xz

ターゲット マシンが 32 ビットの場合:

gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz

       ② qt5 ソースコードと qtcreator 実行パッケージ (この例は 64 ビット マシンに基づいています)

              qt-everywhere-src-5.12.11 (QT ソース コード).tar.xz

              qt-opensource-linux-x64-5.12.11 (QT 開発ツール).run

  1. インストール環境(Ubuntuでのインストール)

最初のステップはソースを変更することです: (そうしないと、人生を疑うほど遅くなります)

sudo /etc/apt/sources.list

または

sudo gedit /etc/apt/sources.list

次のソースをコピーします (実際のテストでは中国科学技術大学のソースが最も速く、Alibaba のソースを推奨する人の方が多いです)。

deb https://mirrors.ustc.edu.cn/ubuntu/ バイオニックメイン制限ユニバースマルチバース

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates メインの制限されたユニバース マルチバース

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports メイン制限ユニバース マルチバース

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security メイン制限ユニバース マルチバース

deb https://mirrors.ustc.edu.cn/ubuntu/ バイオニック提案のメイン制限ユニバース マルチバース

deb-src https://mirrors.ustc.edu.cn/ubuntu/ バイオニックメイン制限ユニバースマルチバース

deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates メインの制限されたユニバース マルチバース

deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports メイン制限ユニバース マルチバース

deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security メイン制限ユニバース マルチバース

deb-src https://mirrors.ustc.edu.cn/ubuntu/ バイオニック提案のメイン制限ユニバース マルチバース

   sudo apt-get update および sudo apt-get upgrade を使用して、ソフトウェアのダウンロード ソースを更新します。

2 番目のステップは、環境の依存関係をインストールすることです

$ sudo apt-get インストール リポジット git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools

$ sudo apt-get install device-tree-compiler gcc-aarch64-linux-gnu mtools parted

$ sudo apt-get install libudev-dev libusb-1.0-0-dev python-linaro-image-tools

$ sudo apt-get install linaro-image-tools autoconf autotools-dev libsigsegv2 m4

$ sudo apt-get install intltool libdrm-devcurl sed make binutils build-essential gcc

$ sudo apt-get install g++ bash patch gzip bzip2 perl tar cpio python unzip rsync flex

$ sudo apt-get install bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev

$ sudo apt-get install libglade2-dev cvs git mercurial rsync openssh-client subversion

$ sudo apt-get install asciidoc w3m dblatexgraphviz python-matplotlib libc6:i386

$ sudo apt-get install libssl-dev texinfo genext2fs

$ sudo apt-get install lib32stdc++6

$ sudo apt-get install g++-arm-linux-gnueabihf

$sudo apt-get install gcc-arm-linux-gnueabihf

$ sudo apt-get install liblz4-tool lib32gcc-7-dev g++-7 libstdc++-7-dev

rk3399 の場合もインストールする必要があります。

sudo apt-get インストール g++-aarch64-linux-gnu

sudo apt-get インストール gcc-aarch64-linux-gnu

  1. クロスコンパイル環境を構築する

クロスコンパイル環境の設定は、基本的に指定されたパスへの圧力を軽減し、そのパスを環境変数に追加します。

/opt ターゲットを入力します: cd opt

クロスコンパイラーを保存する新しいディレクトリを作成します: mkdir gcc-arm-6.3.1/

クロスコンパイラーが保存されている場所を入力し、コンパイラーを gcc-arm-6.3.1/ にコピーします: mv gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz /opt/gcc - アーム-6.3.1/

gcc-arm-6.3.1/ の下に解凍します: cd /opt/gcc-arm-6.3.1/

tar -xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz

解凍が完了するまで待ちます。完了後、bin ターゲットが作成されるので、これを環境変数に追加する必要があります。

bashrc ファイルを開きます: sudo vi /root/.bashrc または sudo gedit /root/.bashrc

追加:export PATH=/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin:$PATH

有効にするには、sudo source /root/.bashrc をソースとして指定します。

それが有効かどうかを確認します: arm-linux-gnueabihf-g++ -v. 見つかった場合は成功です。

  1. QT をコンパイルする

ソース コードを現在のパスに解凍します。デフォルトはユーザー ディレクトリです: /home/jinyh: tar -xvf qt-everywhere-src-5.12.11.tar.xz

次の 2 つの手順は重要であり、コンパイル構成と qmake 構成の作成が必要です。

私のコンパイル構成は次のとおりです。

./configure -prefix /usr/local/qt-arm/QtEmbedded-6.3.1-arm -confirm-license -opensource -release -make libs -xplatform linux-arm-gnueabi-g++ -pch -qt-libjpeg -qt- libpng -qt-zlib -no-opengl -no-sse2 -no-openssl -no-cups -no-glib -dbus -no-xcb -no- Separate-debug-info -no-iconv

スクリプトとして実行することも、コマンドとして直接入力することもできます。

-prefix /usr/local/qt-arm/QtEmbedded-6.3.1-arm は Qt のインストール パスを意味し、事前に mkdir 展開する必要があります。

上記の -xplatform パラメーターに注意する必要があります。このプラットフォームはディレクトリ /home/jinyh/qt-everywhere-src-5.12.11/qtbase/mkspecs に含まれているため、arm-gnueabi-g++ を選択しました。独自のプラットフォームの場合は、ここで新しいプラットフォームと構成ファイルを作成する必要があります (試していません)。

構成ファイルを変更し、/home/jinyh/qt-everywhere-src-5.12.11/qtbase/mkspecs/linux-arm-gnueabi-g++ で qmake.conf ファイルを見つけて、次のように変更します。

#

# arm-linux-gnueabi-g++ でビルドするための qmake 設定

#

MAKEFILE_GENERATOR = UNIX

CONFIG += インクリメンタル

QMAKE_INCREMENTAL_STYLE = サブライブラリ

include(../common/linux.conf)

include(../common/gcc-base-unix.conf)

include(../common/g++-unix.conf)

# g++.conf の変更

QMAKE_CC =/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc

QMAKE_CXX =/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

QMAKE_LINK =/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

QMAKE_LINK_SHLIB=/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

# linux.conf の変更

QMAKE_AR =/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs

QMAKE_OBJCOPY =/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy

QMAKE_NM =/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P

QMAKE_STRIP =/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip

ロード(qt_config)

上記の主な変更点は、コンパイルにクロスコンパイラーを使用することです。

構成スクリプトを実行するか、単に設定スクリプトを投入して実行すると、おそらく次のような成功画面が表示されます。

その後、 make -j4 && sudo make install を実行し、インストールが完了するまで待ちます。何もなければ、約 3 時間かかります。

環境変数を構成します。

エクスポート QTDIR=/usr/local/qt-arm/QtEmbedded-6.3.1-arm

エクスポート PATH=$QTDIR/bin:$PATH

エクスポート LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

次に、それをソースし、qmake -versionと入力すると、バージョン情報が表示されます。OK

  1. qtcreatorをインストールする

Ubuntu# chmod +x qt-opensource-linux-x64-5.12.2.run

Ubuntu# sudo ./qt-opensource-linux-x64-5.12.2.run

Ubuntu#CD の選択

Mkdir Qt5.12.2

qtcreatorのインストールディレクトリを作成します
インストール ディレクトリを選択したら、次のステップに進みます。コンポーネントを選択するウィンドウが表示されます。必要なコンポーネントに応じて選択できますが、Android 以外のすべてを選択するようにしてください。[次へ] をクリックします。
使用許諾契約を求めるウィンドウが表示されるので、最初の項目を選択して同意し、条項を読みます。もう一度「次へ」をクリックします。インストールの準備ができたら、「インストール」をクリックするだけです。

この時点で、Qt をインストールする準備ができました。

環境変数を追加します (vi /root/.bashrc)。

エクスポート PATH="/opt/Qt5.12.11/Tools/QtCreator/bin:$PATH"

エクスポート PATH="/opt/Qt5.12.11/5.12.11/gcc_64/bin:$PATH"

source /root/.bashrc に移動し、ユーザー名の下に qtcreator と入力して qtcreator を起動します。

またはターミナルに入力します

/opt/Qt5.12.2/5.12.2/QtCreator/bin/qtcreator &

この文章は保存、コピー&ペーストが可能です。

  1. QT コンパイル コンポーネント キットを構成する

ubuntuに入ったら「sudo su」と入力します

パスワードを入力する、

次に、「qtcreator」と入力してプロジェクトを開きます。(ここに問題がある可能性がありますが、それについては最後に説明します。 )

qtのツールを見つけてオプションを開きます

次に、Manual、Add G++、先ほどの GCC の gcc を g++ のものに変更するだけです。

上記のプログラムが正しければ、次のステップで Qt バージョンと qmake が基本的に自動的に追加されます。

Kit キットは基本的にコンパイラとバージョンを設定するものですが、先頭の感嘆符はデバイスが選択されていないため、無視して問題ありません。

32 ビット arm 実行プログラムを生成し、rk3288 開発ボード上で実行できます。

最後の質問:

Qt5.15.0 をインストールした後、テスト ケースの実行時にエラーがポップアップ表示されました: qt.qpa.plugin: Could notload the Qt platform plugin “xcb” in “” Even while it was found. Qt platformがないため、このアプリケーションは開始できませんでしたプラグインが初期化されている可能性があります。アプリケーションを再インストールすると、この問題が解決する可能性があります。利用可能なプラットフォーム プラグインは、eglfs、linuxfb、minimal、minimalegl、offscreen、vnc、xcb です。中止されました (コア ダンプされました) 問題の説明によると、Qt プラットフォーム プラグイン「xcb」 「 は見つかるが読み込めない 」という場合は、再インストールで解決する可能性があるとされていますが、できれば最低の選択肢として考えるべきでしょう。

解決:

$ sudo apt-get install libxcb-xinerama0

詳細については、ドキュメントを参照してください。

qt.qpa.plugin の問題を解決: Ubuntu18.04_Feng Yihangge のブログ - CSDN ブログで Qt プラットフォーム プラグイン "xcb" を Qt にロードできませんでしたその他の主な参考文献:

Ubuntu16.04_petertang1975 のブログ - CSDN ブログでの rk3288 の qt コンパイル環境の構成

おすすめ

転載: blog.csdn.net/weixin_41579872/article/details/123350249