新聞中心
```sudo apt-get updatesudo apt-get install qt5-default2. 檢查程序所需依賴項(xiàng)執(zhí)行以下命令可以列出當(dāng)前目錄下可執(zhí)行文件所需依賴項(xiàng):
近期在使用Ubuntu18操作系統(tǒng)進(jìn)行開發(fā)時(shí),遇到了一個(gè)令人頭疼的問題:qt生成的程序無法雙擊運(yùn)行。這個(gè)問題耗費(fèi)了我整整一天的時(shí)間,讓我感覺非常沮喪和焦慮。下面是我的經(jīng)歷以及解決方案。

首先,我想說出自己對于這個(gè)問題的理解。根據(jù)我的分析和實(shí)踐,這個(gè)問題很可能是由于缺少必要的庫文件導(dǎo)致的。在Ubuntu系統(tǒng)中,有些庫文件并不會(huì)默認(rèn)安裝,在編譯或者打包過程中需要手動(dòng)指定,并將其加入到依賴列表中去。
接下來就是具體步驟了:
1. 首先檢查是否已經(jīng)安裝Qt相關(guān)環(huán)境
如果你還沒有安裝Qt相關(guān)環(huán)境,請按照以下步驟進(jìn)行:
```
sudo apt-get update
sudo apt-get install qt5-default
2. 檢查程序所需依賴項(xiàng)
執(zhí)行以下命令可以列出當(dāng)前目錄下可執(zhí)行文件所需依賴項(xiàng):
ldd xxx (xxx為可執(zhí)行文件名)
其中會(huì)列出所有該可執(zhí)行文件所需要鏈接并加載進(jìn)內(nèi)存才能正常工作的共享庫(動(dòng)態(tài)連接庫)名稱和路徑;而如果某個(gè)共享庫沒有被列出,則說明可執(zhí)行文件無法找到該庫,因此會(huì)導(dǎo)致無法運(yùn)行。
3. 手動(dòng)添加缺失的依賴項(xiàng)
在我的情況下,我發(fā)現(xiàn)我的程序需要libxcb-xinerama0這個(gè)庫文件才能正常運(yùn)行。但是,在Ubuntu18系統(tǒng)中默認(rèn)并不包含這個(gè)庫。因此,我們需要手動(dòng)安裝它:
sudo apt-get install libxcb-xinerama0
4. 將依賴項(xiàng)添加到打包腳本或者編譯命令中
如果你使用的是Qt Creator進(jìn)行編譯和打包,則可以在.pro項(xiàng)目文件中加入以下代碼來指定所需的鏈接庫:
unix:LIBS += -lxxx (xxx為所需鏈接共享庫名稱)
而如果你使用CMake作為構(gòu)建工具,則可以通過修改CMakeLists.txt文件來實(shí)現(xiàn)同樣功能:
target_link_libraries(target_name PRIVATE xxx) (其中target_name為目標(biāo)輸出名字;xxx為所需鏈接共享庫名稱)
總結(jié)一下:以上四步都非常重要!前三步用于檢查問題、確定缺失的依賴項(xiàng),并進(jìn)行手動(dòng)安裝;第四步則是將其加入到編譯或者打包過程中去,從而保證程序能夠正常運(yùn)行。
最后附上一個(gè)小技巧:如果你想快速地測試某個(gè)可執(zhí)行文件是否存在必要的依賴關(guān)系,請嘗試在終端中直接輸入該文件名進(jìn)行運(yùn)行。如果缺少依賴,則會(huì)有相應(yīng)的錯(cuò)誤提示。這個(gè)方法可以幫助你更快地定位問題所在。
總之,解決Ubuntu18系統(tǒng)qt生成程序無法雙擊運(yùn)行問題需要一定的耐心和技巧,并且需要對操作系統(tǒng)和Qt相關(guān)知識有一定了解才能夠順利完成。但是,當(dāng)我們真正找到問題所在并成功解決時(shí),那種成就感和滿足感也是非常值得的!
當(dāng)前文章:Ubuntu18系統(tǒng)qt生成程序無法雙擊運(yùn)行問題:讓我抓狂的一天
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/cdsjpgs.html


咨詢
建站咨詢
