いくつかの 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 つの実装
目次DockerでTomcatをインストールするtomcatイメージを使用してコンテナを作成する(イ...
テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...
このエラーは初心者によく発生します。この記事では主に、エラー 2003 (HY000): '...
この記事では、参考までにMySQL 8.0.15のインストールと設定のグラフィックチュートリアルを紹...
実は、最近はウェブデザインについてよく耳にするようになりました。インターネット業界は今とても発展して...
コンテナを作成する [root@server1 ~]# docker run -it --name ...
インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...
1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...
この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
dockerでイメージを削除するコマンドはdocker rmiですが、このコマンドを実行してもイメー...
会社のビジネスシナリオでは、WeChat アカウント分割機能を使用する必要があります。公式 Web ...
この記事では主に Vue プロジェクトを紹介します。要素の導入を前提として、コンポーネントを 2 回...
目次背景仮想ファイルのインポート例書類タイプスクリプトのサポート要約する背景新しいプロジェクトで v...
序文JavaScript では、document.querySelector("#demo...
新しく作成された Web サイトの場合は、ASP.NET MVC5 を例に挙げます。セッションを処理...