數(shù)字圖像處理課設(shè)需要用到Qt拾稳。好久不用胖腾,按照官網(wǎng)安裝教程安裝好之后,發(fā)現(xiàn)無(wú)法編譯運(yùn)行程序媒役,會(huì)報(bào)錯(cuò):
20:01:34: Starting E:\Qt\Examples\Qt-5.11.2\widgets\itemviews\build-addressbook-Desktop_Qt_5_11_2_MinGW_32bit-Debug\debug\addressbook...
20:01:34: 程序異常結(jié)束。
20:01:34: The process was ended forcefully.
20:01:34: E:/Qt/Examples/Qt-5.11.2/widgets/itemviews/build-addressbook-Desktop_Qt_5_11_2_MinGW_32bit-Debug/debug/addressbook crashed.`
谷歌了一下之后宪迟,有人提到按F5調(diào)試會(huì)有別的報(bào)錯(cuò)信息出現(xiàn):
During startup program exited with code 0xc0000139.
再次檢索此錯(cuò)誤碼酣衷,發(fā)現(xiàn)一篇StackOverflow問(wèn)答:
其實(shí)基本是樓主的自問(wèn)自答hhhh。大概就是說(shuō)這個(gè)錯(cuò)誤碼是你缺少一大堆.dll導(dǎo)致的次泽,如果你不知道缺啥鸥诽,可以用dependencyWalker看一下。嘗試這玩意之后箕憾,發(fā)現(xiàn)的確可以看出來(lái)缺了啥dll,但是這東西運(yùn)行起來(lái)慢得要死拳昌,還會(huì)報(bào)出一堆找不到API-MS的假警報(bào)袭异。然后我福至心靈,進(jìn)入到編譯結(jié)果的文件夾炬藤,雙擊運(yùn)行編譯出的.exe:
得嘞御铃!Qt月經(jīng)問(wèn)題。搜了一下解決方法有二:
方法一:修改環(huán)境變量沈矿。
在環(huán)境變量Path中加入Qt安裝文件下{QtVersion}\mingw53_32\bin
上真,例如,我將Qt5.11.2安裝在E盤(pán)下羹膳,我的路徑就是E:\Qt\5.11.2\mingw53_32\bin
睡互。也可參考QT5生成.exe文件時(shí),出現(xiàn)缺少Q(mào)T5core.dll文件解決方法這篇文章陵像。方法二:把所有缺的.dll一個(gè)一個(gè)復(fù)制進(jìn)編譯生成的目錄下就珠。
基本過(guò)程就是:嘗試運(yùn)行-->記住.dll的名稱(chēng)-->點(diǎn)確定-->在安裝目錄下找到.dll-->復(fù)制粘貼-->再次嘗試運(yùn)行……這樣循環(huán)。
解決了找不到.dll的問(wèn)題之后醒颖,再次嘗試運(yùn)行妻怎,又出現(xiàn)了新的坑:
根據(jù)QT生成的exe無(wú)法定位程序輸入點(diǎn) 于動(dòng)態(tài)鏈接庫(kù) 報(bào)錯(cuò)原因這是因?yàn)榇嬖诙鄠€(gè)MGWIN,每個(gè)MGWIN的\bin\下都有一個(gè)libstdc++-6.dll 導(dǎo)致程序不知道該訪問(wèn)那個(gè).dll泞歉。
解決方法有二:
方法一:
還是上面的文章里說(shuō)的逼侦,把正確的libstdc++-6.dll復(fù)制過(guò)來(lái)匿辩。方法二:
Qt中關(guān)于無(wú)法定位程序輸入點(diǎn)的一種問(wèn)題解決方式:
前提:正確配置了qt的環(huán)境變量
接著,把qt環(huán)境變量盡量放到前面榛丢,避免程序誤認(rèn)其他環(huán)境變量中包含的qt庫(kù)(比如我的qt環(huán)境變量的前面是codeblocks的環(huán)境變量铲球,結(jié)果就悲劇了,害我折騰那么久涕滋。)
ps:如果不確定哪個(gè)程序還有qt庫(kù)睬辐,可以在環(huán)境變量中慢慢試,一次向前移動(dòng)一次宾肺,就可以測(cè)出來(lái)哪些軟件還包含了Qt庫(kù)溯饵。
但是方法二并沒(méi)有對(duì)我起作用= =,我用的方法一锨用。
至此這個(gè)問(wèn)題成功解決丰刊。撒花花。