いくつかの 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 つの実装
この記事では、jQueryタグセレクターアプリケーションの具体的なコードを例として紹介します。具体的...
この記事では、オンラインアナウンスのスクロール効果を実現するためのJSの具体的なコードを参考までに共...
conda アップデート conda pip で tf-nightly-gpu-2.0-previ...
CSS3 カテゴリ メニューの効果は次のとおりです。 html <html> <ヘ...
この記事の例では、ページキャッシュ機能を実装するためのVueの具体的なコードを参考までに共有していま...
目次.vue ファイルの解析文書情報を抽出するコンポーネント名、説明、プロパティ、メソッド、モデルを...
isnullの代わりにifnullを使用するisnull は、null かどうかを判断するために使用...
Mysqlページングの2つのパラメータ ユーザー制限 1,2 から * を選択 1 は検索する最初の...
Windows 64 ビット版 MySQL 5.7 以降の解凍パッケージにデータディレクトリ、my-...
ダイナミックレム1. まず、現在の長さの単位を紹介しましょうpx em Mの幅 / 漢字の幅 1em...
目次docker システム df docker システム プルーンdocker systemc 情報...
まずコードを見てみましょうコードをコピーコードは次のとおりです。 <div style=&qu...
Webページを作るときに、区切り線hrを使うことがありますが、IE6やIE7で表示するのは非常に苦痛...
インデックスを使用してクエリを高速化する1. はじめにWeb 開発には、ビジネス テンプレート、ビジ...
B ツリーは一般的なデータ構造です。彼と一緒にB+ツリーがあります。ここで、概念を明確にする必要があ...