qt發布linux
㈠ linux下qt程序應該怎麼發布程序有沒有什麼發布工具
比如你的可運行程序取名叫作panel,那把你的panel,那些libQt*.so.4和libQt*.so.4.6.0(鏈接和共享庫都要)放在同一目錄下(也可以不同,只要小小修改下shell文件).plugins就不多說了。
在程序的同目錄下,新建一個空文檔,取名panel.sh (文件名與程序名同名,擴展名為sh,shell文件)。
在panel.sh中原封不動的寫入以下語句:#!/bin/shappname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp=${dirname#?}
if [ ${dirname%$tmp} != / ]; then
dirname=$PWD/$dirname:$LD_LIBRARY_PATHfiLD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname $*
保存文件,退出。在終端給文件+x屬性: 切換到程序的目錄,輸入
chmod +x panel.sh
然後運行shell文件就行了(確保panel程序具備X屬性),它會自動更改環境變數,運行程序。
如果要調試shell文件,只需要在終端輸入:
㈡ 請問linux下的Qt程序如何發布
用系統自帶的MHDD工具,里邊有密碼清除工具。網有它的用法。
㈢ Linux下如何發布Qt程序
比如你的可運行程序取名叫作panel,那把你的panel,那些libQt*.so.4和libQt*.so.4.6.0(鏈接和共享庫都要)放在同一目錄下(也可以不同,只要小小修改下shell文件).plugins就不多說了。
在程序的同目錄下,新建一個空文檔,取名panel.sh (文件名與程序名同名,擴展名為sh,shell文件)。
在panel.sh中原封不動的寫入以下語句:#!/bin/shappname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp=${dirname#?}
if [ ${dirname%$tmp} != / ]; then
dirname=$PWD/$dirname:$LD_LIBRARY_PATHfiLD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname $*
保存文件,退出。在終端給文件+x屬性: 切換到程序的目錄,輸入
chmod +x panel.sh
然後運行shell文件就行了(確保panel程序具備X屬性),它會自動更改環境變數,運行程序。
如果要調試shell文件,只需要在終端輸入:
㈣ linux下qt程序應該怎麼發布程序
1、linux下復制qt release模式生成的可執行文件到桌面的新建目錄。
2、編寫腳本文件ldd.sh 作用:導出可執行程序運行時所需要的庫文件 點擊下載。
3、執行 ./ldd.sh + 可執行程序 在當前的文件夾下生成lib文件。復制lib下的庫文件 與可執行文件同級目錄。
4、到Qt安裝目錄里 找到platform文件夾 我的目錄是 /opt/Qt5.7.0/5.7/gcc_64/plugins/platforms 復制此文件夾與可執行文件同級目錄。
5、復制ldd.sh到platforms文件夾內,執行 ./ldd.sh libqxcb.so 將生成的lib目錄下的庫文件拷貝至可執行文件同級目錄。刪除platforms里的lib文件。
6、執行下載到的腳本文件 ./app.sh
註:app.sh與可執行文件同名。在windows下寫的腳本文件 在linux下使用是出現 /bin/bash^M: bad interpreter:沒有那個文件或目錄 解決辦法
vim 打開腳本文件 :set ff? 顯示 ff=dos 修改成 :set ff=unix :wq保存退出即可
㈤ 如何將 linux+Qt 程序打包發布
qt程序動態打包步驟
1. 從可運行程序的文件中拿出可執行文件
2. 終端下使用ldd命令查看需要的連接庫
例如 ldd + 可執行文件
3. 把ldd查詢到的所有需要的庫導出
4. 編寫.sh文檔(.sh文件命名必須與可執行文件名字一樣例:可執行文件名 test, .sh 文件名為 test.sh)
.sh文件代碼如下:
#!/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 $*
5. 把所用到的庫,可執行文件, .sh文件放到同一目錄下
6. 終端中進入這一目錄,輸入:
chmod +x test.sh
7. 執行程序點擊.sh文件或者終端輸入:
./test.sh
㈥ Linux下QT打包發布,dirname :not found
cat fileTest.sh 查看打包目錄位置,然後修改,或者./fileTest.sh --help 查看腳本的使用方法。
㈦ 怎麼使Qt發布的程序在非Qt環境的Linux下運行
1、在Linux下的命令行編輯程序:
[root@localhost root]# mkdir hello
//mkdir命令創建一個hello目錄
[root@localhost root]# cd hello
//cd命令切換到剛才創建的hello目錄
[root@localhost hello]# vi main.cpp
//在hello目錄中用vi創建一個main.cpp文件 將下面的代碼輸入到main.cpp文件中
#include <QApplication>
#include <QLabel>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QLabel *label = new QLabel(「Hello Qt」);
Label->show();
return app.exec();
}
2、然後在命令行編譯程序:
[root@localhost hello]# qmake –project
//執行qmake –project,因為目錄是hello,因此在hello目錄下生成一個與平台無關的項目文件hello.pro,
[root@localhost hello]# qmake hello.pro
//執行qmake hello.pro項目文件後,在hello目錄下生成一個與平台有關的Makefile文件。
[root@localhost hello]# make
//執行make進行編譯源代碼,並生成main.o目標文件及hello執行文件。
[root@localhost hello]# ./hello
//執行hello,就會彈出Hello Qt窗口,到此說明成功了。
㈧ Qt程序發布後,放在沒有Qt的系統(Linux Redhat6.5)下運行,中文不顯示,已經加了中文字型檔
有設置字體嗎?
一般情況下在Qt安裝目錄的lib目錄下面有字體文件,如果沒有你可以從windows下面拷貝一個「微軟雅黑」過去,然後在main.cpp中配置下app的字體,應該就可以顯示了
#或者在配置啟動腳本的時候設置字體路徑
exportQTDIR=/usr/local/qt5
exportQT_QPA_FONTDIR=$QTDIR/lib/fonts
exportQT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/
exportLD_LIBRARY_PATH=$QTDIR/lib:/lib:/usr/lib:/opt/libxil/lib:$LD_LIBRARY_PATH
㈨ linux發布qt程序怎麼這么復雜
1、首先創建根目錄,再將Qt編譯後的可執行文件放在目錄上。
2、其次目錄下創建一個腳本文件,可以給其可執行許可權命令為,執行腳本文件。
3、最後繼續執行可執行文件會出現錯誤,將文件夾放到沒有Qt環境的linux系統下也可以正常運行程序了。