1. 程式人生 > >Qt 程式在linux下的釋出

Qt 程式在linux下的釋出

Ubuntu上,通過執行lddmyapp可以檢視應用程式依賴的動態連結庫,在=>後顯示notfound”的動態連結庫就是需要複製的動態連結庫,例如:

libQt5Widgets.so.5=>not found

將缺失的動態庫複製到應用程式目錄後,由於實際的動態庫名稱與應用程式所需的名稱不一致,還需要通過建立軟連結實現應用程式與動態連結庫的連結,比如libQt5Core.so.5建立指向libQt5Core.so.5.1.0的軟連結,在應用程式目錄下執行下面的命令:

ln-s $PWD/libQt5Core.so.5.1.0 libQt5Core.so.5

所有動態庫的軟連結建立之後,執行下面的命令使應用程式目錄成為系統動態庫路徑:

exportset LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH

再次執行ldd myapp顯示所有動態庫都已經關聯,執行myapp報錯

Failedto load platform plugin “xcb”. Available platforms are:

Aborted(coredumped)

這是缺少平臺資訊,需要將安裝目錄/opt/Qt5.1.0/5.1.0/gcc/plugins/platforms資料夾複製到應用程式所在目錄下,執行應用程式仍然報錯

Failedto load platform plugin “xcb”.Available platforms are:

linuxfb

minimal

xcb

Aborted(core dumped)

這時通過命令exportQT_DEBUG_PLUGINS=1,再執行./myapp可以將QT的除錯資訊打印出來,可以看到實際上還缺少一個動態庫,導致libqxcb.so不能載入:

同樣複製這個動態庫到應用程式目錄下,建立好軟連結,就能執行應用程式了。

下面是某個應用程式建立軟連結的命令,以及相關的動態庫名連結名

ln-s $PWD/libQt5DBus.so.5.1.0libQt5DBus.so.5

ln-s $PWD/libQt5Core.so.5.1.0libQt5Core.so.5

ln-s $PWD/libQt5Gui.so.5.

1.0libQt5Gui.so.5

ln-s $PWD/libQt5Widgets.so.5.1.0libQt5Widgets.so.5

ln-s $PWD/libQt5Xml.so.5.1.0libQt5Xml.so.5

ln-s $PWD/libicudata.so.49.1.2libicudata.so.49

ln-s $PWD/libicui18n.so.49.1.2libicui18n.so.49

ln-s $PWD/libicuuc.so.49.1.2libicuuc.so.49

為了避免每次執行前設定LD_LIBRARY_PATH環境變數,可以通過編寫一個指令碼來啟動應用程式

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="${dirname#?}"

if [ "${dirname%$tmp}"!= "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "[email protected]"

將這個指令碼儲存為myapp.sh,並且放在應用程式同一目錄下,只要執行這個指令碼就能執行應用程式了。

相關推薦

LinuxQt程式的打包釋出

程式以test為例: 1. QtCreate使用Release版本編譯 2. 從可執行程式的檔案中拿出可執行檔案,例:test 3. 終端下使用ldd命令檢視需要的連線庫,例:ldd test

qt開啟linux的裝置節點

#include <stdlib.h>  //包含標頭檔案 #define IOCTL_LED_ON  0 #define IOCTL_LED_OFF 1 int led_fd=0; int led_open(const char *devname) //定義

關於qtlinux使用open,write,close等檔案操作的筆記

在看一些例程的時候發現 ,linux下qt使用檔案操作的時候跟用c語言編寫的函式不一樣 linux下在qt中使用open #include <fcntl.h> fd = ::open(“path”,O_RDWR|O_NONBLOCK); linux下在c中使用

qtlinux的input裝置

        在嵌入式開發中,qt的鍵盤往往都是特製的,如何讓特製的鍵盤被qt用起來,需要對linux的input子系統有一定了解,並且特別要追一下qt對外界輸入時間的處理方式。應用層和驅動層相互關聯,在此僅先粗略分析下qt這部分:     在qt的原始碼中grep下/

C語言程式Linux執行

市面上常見的Linux都是發行版本,典型的Linux發行版包含了Linux核心、桌面環境和各種常用的必備工具,國內使用較多的是Ubuntu(烏班圖)、CentOS、Deepin(深度Linux)。本教程以Deepin為例來講述如何編譯C程式。 Gedit Gedit是一個簡單實用的文字編輯器,擁有漂亮的介面

Linux打包釋出Qt應用程式

Linux下打包釋出Qt應用程式 Linux下打包釋出Qt應用程式 1. 編譯檔案 2.巧用指令碼檔案 新建檔案 新增指令碼 執行指令碼 打包釋出 Linux

Linux qt 程式打包釋出(使用linuxdelpoyqt ,shell 指令碼)

linux qt 程式打包釋出 1.linuxdeployqt 安裝 最簡單的方法直接下載編譯好的 linuxdeployqt-x86_64.AppImage檔案,將其改名字為linuxdeployqt,並chmod a+x,然後複製到 /usr/loc

qt程式linux打包釋出

       僅做記錄,防止忘記:        1、linux下複製qt release模式生成的可執行檔案到桌面的新建目錄。        2、編寫指令碼檔案ldd.sh  作用:匯出可執行程式執行時所需要的庫檔案  點選下載。         3、執行 ./ldd

Qt 程式linux釋出

在Ubuntu上,通過執行lddmyapp可以檢視應用程式依賴的動態連結庫,在=>後顯示”notfound”的動態連結庫就是需要複製的動態連結庫,例如: libQt5Widgets.so.5=>not found 將缺失的動態庫複製到應用程式目錄後,由於實際的動

Linux使用linuxdeployqt釋出Qt程式

目錄 一、簡介 二、安裝linuxdeployqt 三、配置 qt 的環境變數 四、打包應用程式 五、編寫

Linux(Ubuntu)的OpenGl的環境安裝, 在qt程式中使用opengl庫

OpenGl的環境安裝 以下參考自: https://blog.csdn.net/wasaiheihei/article/details/52085397 1. 建立基本編譯環境 首先不可或缺的,就是編譯器與基本的函式庫,如果系統沒有安裝的話,請依照下面的方式安裝: $ sudo a

通過qtlinux系統對c++進行封裝獲得so庫並在在其他程式中呼叫共享庫

在qt下封裝.so 開啟qt新建專案,選擇這個 2、生成了兩個.h檔案和一個main.c檔案,這裡參照.h檔案構建標頭檔案,宣告函式變數等,也就是展現給客戶使用的部分。 之後在.c檔案中對自己的函式進行定義 點編譯,就可以了,可以看到在專案資料夾中生成了.s

Windows QT程式釋出

方法1:利用QT自帶打包工具 1、新建資料夾,把編譯好的exe檔案放入該資料夾 2、使用QT下的命令列 3、進入該exe所在檔案,執行windeployqt xxx.exe,若出現找不到命令的情況 4、搜尋windeployqt.exe所在路徑,配置環境變數 5、重啟終端,進入exe檔案所在目錄,

Linuxqt 禁止程式執行兩個

Linux系統下qt防止同一程式在系統中執行兩個例項,直接上程式碼:    QEventLoop loop;    connect(&process,SIGNAL(readyReadStandardOutput()),&loop,SLOT(quit())); 

linuxQt關閉第三方程式

環境:ubuntu16.04           Qt5.9最近在開發過程中,需要通過Qt來開啟和關閉第三方應用,使用QProcess類返回的PID和使用top命令檢視到的程序ID不一樣,不知道是不是用錯了類方法。後來在網上查到可以用pkill來關閉程序。pkill命令可以按

QtCreator程式釋出:WindowsLinux

Windows下: 說明:使用Qt自帶工具“windeployqt.exe”來拷貝大部分的動態庫(*.dll),一般有以下兩種方法。 前提,將Qt編譯方式選為:Release,把編譯好的*exe檔案拷

linux Ubuntu14.04移植Qt程式至QNX6.5.0作業系統

前言 本文內容主要為如何在Ubuntu14.04上將Qt程式移植到裝有Qnx6.5.0作業系統的嵌入式裝置(x86架構)上,以供有需要的開發者參考。 準備工作 1.在Ubuntu上安裝Qt4.7.1; 3.下載這兩個壓縮包:qt_qnx_host_l

Linux 如何打包免安裝的QT程式

如題,近期因為專案需求,得打包QT程式,並將程式放到沒有安裝QT庫的電腦上執行。網上索羅了下,打包QT程式的方式很多,主要分為以下幾種: 1. 打包成安裝包形式; 2. 打包成二進位制檔案,附帶執行庫的形式: - windows下,有很多工具,教程也比較多

linuxqt的安裝和一個最簡單的小程式hello world

唉。。十一買車票真的有點鬱悶啊!網上買票還得排隊,去哪說理去!我是邊買車票,變自學QT,第一次用QT 環境,有點不太熟悉,配置配置linux下的QT開發環境,自己研究了一天,終於讓我弄好啦,老天不負有

linux 釋出qt程式

環境:centos7.2  qt5.5.1 qtcreator編譯後獲得可執行程式A1.將資料夾拷到沒有裝qt的機器上,進入資料夾,點選程式A,沒有任何反應,因為缺少so庫,命令列進入資料夾,執行ldd A會列印程式依賴庫的情況,查詢not found相關的庫,去安裝qt的機