色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

ubuntu下怎么打包寫好的Qt程序

錢琪琛2年前25瀏覽0評論

ubuntu下怎么打包寫好的Qt程序?

你可以參考SQLiteStudio這個Qt寫的跨平臺SQLite管理工具,它自己打包了依賴的Qt庫,可以做到解壓即用,兼容不同Linux發行版.道理其實跟Windows版Qt程序自帶Qt庫差不多.

編譯前給連接器傳一個參數:

說明:

-Wl 表示告訴編譯器將后面的參數傳遞給鏈接器.

rpath是gcc的一個參數,當程序被加載時,會搜尋rpath目錄,尋找共享庫.

rpath添加的目錄信息保存在可執行文件中.

$ORIGIN表示可執行文件所在的目錄.

也就是運行時程序會先去自己所在的目錄的lib里去加載依賴庫,沒有的話再去系統庫里找.

如果你的程序在編譯時沒有傳遞rpath參數,那你也可以用patchelf來修改你程序的rpath:

注意:patchelf修改文件后再strip會導致文件損壞.

所以應該先用strip刪除符號表縮小二進制文件,然后再用patchelf設置rpath.

題外話,Android上既沒有glibc庫,也沒有庫鏈接器ld-linux.so.3.

如果你要把Debian ARM(如樹莓派Raspbian)上的軟件放到Android上跑,你一樣可以打包程序依賴的共享庫,讓程序也能跑在Android上,比如PHP:

也就是你把庫鏈接器ld-linux-armhf.so.3和PHP依賴的庫都放到/data/local/tmp/web/lib里,然后設置個別名,就能在Android的adb shell里運行樹莓派的PHP了.

當然,你也可以用patchelf設置PHP的interpreter和rpath,效果差不多:

php解壓安裝教程,ubuntu下怎么打包寫好的Qt程序