Qt 程式打包by tangke <tangk@lemote.com> 2009-06-02
我們一般寫的Qt程式如果用dpkg-buildpackages來進行打包的話,會遇到一些問題。
那麼我們如何來將已經寫好的qt程式打成debian包呢?
dpkg給我們一個很好的解決辦法,我們可以使用dh_make工具,該工具可以通過apt-get install dh-make來安裝。
dh_make -e tangk@lemote.com -n之後會產生debian目錄,裡面會儲存changelog,control檔案等等。
然後我們在使用dpkg-buildpackages的時候會發現在打完的deb包裡面找不到可執行檔。
後來我參考了網上寫的一些文章:總結出了qt程式打包成deb的一些技巧。
1.dpkg-buildpackages打包的時候其實是打包了debian/packages_name裡面的東西,所以你要相應的要把需要的東西有意識的放到裡面去。
2.修改pro檔案
在裡面添加
target.path += debian/test-package/usr/bin
INSTALLS += target
3.按照第二步所作的情況,產生的Makefile裡面會有一個install,而dpkg-buildpackages就是會自動執行make install操作。這樣就可以了產生一個完整的deb包了。
4.稍後我會講解一個例子
target.path += debian/$${TARGET}/usr/bin
2009-5-21
我們不能把target.path += debian/test-package/usr/bin寫死,使用變數的話,通用性更強一些
如何能再添加一些qm檔案就更好了,但是目前我還不太清楚怎麼安裝qm
2009-5-21
後來分析了一下qt-creator裡面的協助資料,發現我們可以這樣做
documentation.path = debian/$${DEBIAN_DIR}/usr/share/locale/zh_CN/LC_MESSAGES/
documentation.files = taskmanager_loongson.qm
INSTALLS += documentation
下面還要談一下注意點:
1.taskmanager_loongson這樣的目錄是不符合打包規範的,必須要改成taskmanager-1.0.1這樣的目錄格式
2.在taskmanager-1.0.1目錄的上級目錄執行,tar zcvf taskmanager.tar.gz taskmanager-1.0.1,這樣會得到一個源碼包.然後在taskmanager-1.0.1目錄下面執行dh_make -e tangk@lemote.com -f ../taskmanager.tar.gz之後,在上級目錄會出現一個taskmanager_1.0.1.orig.tar.gz.
3.當然我們也可以忽略第二步的操作,但是你必須使用dh_make -e tangk@lemote.com -n