いくつかの 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 つの実装
目次適用シナリオ:方法 1: 正規表現 (推奨)方法2: 配列のreduceメソッドを使用する方法3...
この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
undefined JavaScript では、値が undefined かどうかを判断したい場合は...
序文: Vue3 がリリースされてからかなり経ちますが、最近、会社のプロジェクトでVue3 + Ty...
目次1. jsメモリ2. 譲渡3. 浅いコピー4. ディープコピー序文:以下の記事を読む前に、記憶に...
当初の意図は、element-ui の $notify 通知をコンポーネントにカプセル化することでし...
問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...
目次ベーシックエディションステップ1: Axiosを構成するステップ2: リクエストをカプセル化する...
序文前回の記事ではNode.jsのインストールと設定を紹介しました。今回はVScodeでbableを...
wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...
<br />この例では、主に onblur と onFocus という 2 つのパラメー...
1. 環境要件1. Docker 17以上がインストールされている2. コンテナ操作docker r...
jar パッケージを実行する Linux コマンドは次のとおりです。方法1: java -jar s...
この記事では、例を使用して MYSQL パフォーマンス アナライザー EXPLAIN の使用方法を説...
この記事では、参考までに、簡単な英中辞典を実装するためのjsの具体的なコードを紹介します。具体的な内...