fenômeno
Os programas desenvolvidos pela Qt podem ser abertos usando ./terminal, mas não podem ser abertos com um clique duplo.
Estágio um
Clique com o botão direito do mouse no programa executável e selecione propriedades.Se o tipo de programa executável for "application / x-sharedlib", adicione o seguinte conteúdo ao arquivo pro do QT, limpe-o e recompile a versão de lançamento;
QMAKE_LFLAGS += -no-pie
O programa executável neste momento é "x-executável", clique duas vezes para ver se ele pode ser iniciado.
Estágio dois
Se você ainda não consegue abrir após o estágio 1, você pode escrever uma pequena demonstração agora, criar um novo projeto com uma interface e não fazer nada. Após compilar, veja se ele pode ser aberto clicando duas vezes. Se puder ser aberto, mas um projeto mais complicado não pode ser aberto. A explicação é um problema ambiental; o
motivo é analisado.
Clique duas vezes na interface gráfica, o ambiente é o gerenciador de arquivos e use ./ na interface de linha de comando, que é um script de shell. Quando o shell é iniciado, alguns scripts são executados para alterar as variáveis de ambiente; se um projeto complexo depende de bibliotecas de terceiros, o clique duplo no executável diretamente não pode ser aberto.
Solução
Modifique as variáveis de ambiente globais e adicione o caminho atual do programa executável ao seguinte arquivo de configuração (dependendo da biblioteca geralmente está no mesmo nível do programa executável):
/etc/ld.so.conf
Execute o seguinte comando para tornar a configuração efetiva imediatamente:
sudo ldconfig
Clique duas vezes no programa executável novamente, ele pode ser aberto normalmente.
Estágio três
O projeto é muito grande e há outro software no computador para modificar as variáveis de ambiente. Após essas operações, você ainda não conseguirá clicar duas vezes para abri-lo. O seguinte descreve o clique duplo do script de shell para iniciar.
1. Edite um script de shell, como runHWT.sh, e coloque-o no diretório do arquivo executável. O conteúdo é o seguinte:
#!/bin/bash
#workdir当前工作路径
workdir=$(cd $(dirname $0); pwd)
#echo $workdir
export LD_LIBRARY_PATH=$workdir #添加临时环境变量
cd $workdir
./HardWareTest #HardWareTest是可执行文件名
Neste ponto, você pode executar o programa no terminal ./runHWT.sh, mas não pode abri-lo mesmo depois de clicar duas vezes nele.
2. Defina o script de shell para abrir clicando duas vezes.
Abra File Manager-Edit-Preferences-Behavior, marque "Executar arquivos de texto executáveis ao abri-los";
clique com o botão direito em runHWT.sh, selecione a guia de permissão e marque Permitir como um arquivo de execução de programa, clique duas vezes em "runHWT.sh" para executar o programa diretamente;
3. Crie um atalho
na área de trabalho Para parecer mais com um programa, crie um atalho na área de trabalho com ícones;
crie o arquivo /home/chw/Desktop/runHWT.sh.desktop na área de trabalho e edite vim runHWT.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;
Onde Exec é o caminho completo do script de shell, Ícone é o caminho do ícone do software, formato png, salvar e sair, você pode ver um ícone chamado "runHWT" na área de trabalho, neste momento clique duas vezes no ícone de atalho para iniciar o Programas.