いくつかの Qt インターフェース プログラムを作成しましたが、Qt 環境がインストールされていない他のコンピューターに移植するのが難しいことがわかりました。情報を調べたところ、Windows には windowsdeployqt プログラムがあり、Linux には linuxdeployqt があり、これらを使用してパッケージを迅速に作成できることがわかりました。 1. Qt環境を設定する まず、Qt 環境を設定し、~/.bashrc に次の行を追加します。 エクスポート PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/bin:$PATH LD_LIBRARY_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/lib:$LD_LIBRARY_PATH をエクスポートします。 エクスポート QT_PLUGIN_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/plugins:$QT_PLUGIN_PATH エクスポート QML2_IMPORT_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/qml:$QML2_IMPORT_PATH 次に、 2. linuxdeployqtをコンパイルする プロジェクトアドレス: https://github.com/probonopd/linuxdeployqt.git。 コンパイルされたパッケージはリリースされていますが、私は Ubuntu 18 を使用しており、システム バージョンが高すぎるため、コードをコンパイルすることを選択します。 コンパイルされたパッケージがシステム バージョンが高すぎることを検出し、実行を継続しないという問題を回避するために、コンパイルする前に // openSUSE Leap 15.0 は glibc 2.26 を使用し、OBS で使用されます /*if (strverscmp (glcv, "2.27") >= 0) { //コメントバージョンチェック qInfo() << "エラー: ホストシステムが新しすぎます。"; qInfo() << "最も古いバージョンよりも新しいバージョンの glibc を搭載したシステムで実行してください"; qInfo() << "現在もサポートされているメインストリームディストリビューション (xenial)、つまり glibc 2.23。"; qInfo() << "これにより、結果として得られるバンドルは、現在もサポートされているほとんどの Linux ディストリビューションで動作します。"; qInfo() << "詳細については、以下を参照してください"; qInfo() << "https://github.com/probonopd/linuxdeployqt/issues/340"; 1 を返します。 }*/ その後、cmake と make を使用してコンパイルできます。生成された実行可能プログラムは 最後に、使いやすさのために、生成された実行可能プログラムをシステムの 3. パッケージ Qt でコンパイルされたプログラムを別のフォルダーにコピーします。 次に、 通常は問題なく完了します。カレントディレクトリに Apprun がありますので、そのまま実行してください。 しかし、システム内に対応するライブラリが不足しているため、スムーズに動作しないこともあります。たとえば、私が遭遇したエラーは次のとおりです。 エラー: patchelf を起動できませんでした。 エラー: $PATH にインストールされていることを確認してください。 エラー: patchelf "libQt5Widgets.so" で rpath を読み取り中にエラーが発生しました: "" エラー: patchelf "libQt5Widgets.so" で rpath を読み取り中にエラーが発生しました: "" このエラーは、必要な pathchelf ツールが見つからないことを示し、直接インストールすることで解決できます。 その後、次のエラーが発生しました。
これは、システムに libqjp2.so ライブラリが存在しないことを示しています。実は非常に奇妙です。ローカル バージョンは明らかに実行できるのに、なぜこのライブラリ ファイルが欠落しているのでしょうか?しかし、解決策は非常に簡単で、不足しているものをインストールするだけです。 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo aptアップデート sudo apt インストール libjasper1 libjasper-dev 設置完了後はスムーズに梱包されます。 要約する 上記は、linuxdeployqt を使用して Ubuntu で Qt プログラムをパッケージ化する方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Mysql でよく使用される時間、日付、変換関数の概要
>>: vue-router からのフロントエンドルーティングの 2 つの実装
CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...
MySQLへのリモートアクセスを有効にするデフォルトでは、MySQL ユーザーにはリモート アクセス...
Centos マシンで docker のインストールが完了したら、docker info コマンドを...
#1. ダウンロード # #2. ローカルに解凍し、必要な構成のmy*.iniを変更します。 #3....
目次1. fill() 構文2. fill() の使用3. まとめ序文:配列の初期化方法についてはよ...
この記事は「Attribution 4.0 International (CC BY 4.0)」ライ...
Docker Toolbox は、Windows 10 Professional より前のバージョン...
Docker コンテナはサービスを提供し、ポート 8888 をリッスンします。外部からアクセスできる...
この記事では、Dockerを使用してMySQLデータベースとリモートアクセス構成をデプロイする方法を...
<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...
現在のページへのリンク。 -------------------一般的な使用法は次のとおりです。 &...
Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...
このセクションから、http モジュールの実装原理について説明します。http モジュールで非常に重...
はじめに使えるかもしれないが、あまり使われていない、シンプルで実用的なDockerコマンドをいくつか...
最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...