LinuxでのQTリリースプログラムは、ソリューションをダブルクリックして開くことはできません

現象

Qtで開発したプログラムは、。/ terminalを使用して開くことができますが、ダブルクリックして開くことはできません。

ステージ1

実行可能プログラムを右クリックし、プロパティを選択します。実行可能プログラムの種類が「application / x-sharedlib」の場合は、QTのプロファイルに次のコンテンツを追加してクリアし、リリースバージョンを再コンパイルします。

QMAKE_LFLAGS += -no-pie

このときの実行可能プログラムは「x-executable」です。ダブルクリックして起動できるか確認してください。

ステージ2

ステージ1を過ぎても開くことができない場合は、この時点で小さなデモを作成し、インターフェイスを使用して新しいプロジェクトを作成し、何もしないでください。コンパイル後、ダブルクリックして開くことができるかどうかを確認してください。開くことができますが、より複雑なプロジェクトを開くことはできません。説明は環境問題です。
理由を分析します。
グラフィカルインターフェイスをダブルクリックすると、環境がファイルマネージャになり、コマンドラインインターフェイスで./を使用します。これはシェルスクリプトです。シェルを起動すると、環境変数を変更するために一部のスクリプトが実行されます。複雑なプロジェクトがサードパーティのライブラリに依存している場合、実行可能ファイルを直接ダブルクリックしても開くことができません。
解決策
グローバル環境変数を変更し、実行可能プログラムの現在のパスを次の構成ファイルに追加します(ライブラリによって異なりますが、通常は実行可能プログラムと同じレベルです)。

/etc/ld.so.conf

次のコマンドを実行して、設定をすぐに有効にします。

sudo ldconfig

実行可能プログラムをもう一度ダブルクリックすると、正常に開くことができます。

ステージ3

プロジェクトが大きすぎて、環境変数を変更するためにコンピューター上に他のソフトウェアがあります。これらの操作の後でも、ダブルクリックして開くことができない場合があります。次に、シェルスクリプトをダブルクリックして開始する方法について説明します。
1. runHWT.shなどのシェルスクリプトを編集し、実行可能ファイルディレクトリに配置します。内容は次のとおりです。

#!/bin/bash
#workdir当前工作路径
workdir=$(cd $(dirname $0); pwd)	
#echo $workdir
export LD_LIBRARY_PATH=$workdir	#添加临时环境变量
cd $workdir
./HardWareTest		#HardWareTest是可执行文件名

この時点で、ターミナル./runHWT.shでプログラムを実行できますが、ダブルクリックしても開くことができません。

2.シェルスクリプトをダブルクリックして開くように設定します。
[ファイルマネージャー]-[編集]-[設定]-[動作
]を開き、[実行可能テキストファイルを開くときに実行する]をオンにします。runHWT.shを右クリックし、[アクセス許可]タブを選択して、[許可]をオンにしますプログラム実行ファイル、「runHWT.sh」をダブルクリックしてプログラムを直接実行します。

3.デスクトップショートカットを作成する
プログラムのように見せるために、アイコン付きのデスクトップショートカットを
作成しますデスクトップにファイル/home/chw/Desktop/runHWT.sh.desktopを作成し、vimrunHWT.sh.desktopを編集します。

[Desktop Entry]
Encoding=UTF-8
Name=runHWT
Comment=硬件测试程序
Exec=/home/chw/HSCompany/HardWareTest/HWTrelease-20210119/runHWT.sh
Icon=/home/chw/HSCompany/HardWareTest/HWTrelease-20210119/image/HWTlogo.png
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

Execがシェルスクリプトのフルパス、Iconがソフトウェアアイコンパス、png形式、保存して終了する場合、デスクトップに「runHWT」という名前のアイコンが表示されます。このとき、ショートカットアイコンをダブルクリックして開始します。ソフトウェア。

おすすめ

転載: blog.csdn.net/weixin_40355471/article/details/112241927