在用cmake編譯opencv的時(shí)候,總會(huì)跑出一堆的警告和錯(cuò)誤。
原因及解決辦法:警告就別理他了,要么就在菜單欄的option的warning message中選擇不顯示就好了,文件不匹配啥的,關(guān)了重新打開(kāi)試試,真的是要看它的心情了。要是出了錯(cuò)誤,有做重要的就是環(huán)境變量的配置,基本上環(huán)境變量配好了,后邊基本不會(huì)出現(xiàn)什么大的問(wèn)題。有這樣幾個(gè)重要的環(huán)境變量要填:cmake的路徑,編譯器g++和gcc的路徑,qt的qmake的路徑,還有一個(gè),我不確定要不要的路徑,就是那個(gè)和平臺(tái)有關(guān)的i686-w64-mingw32這個(gè)文件下的bin目錄,我不清楚是不是要,不過(guò)我這里添加了。
并把其路徑設(shè)置到環(huán)境變量中去,然后,qt的.pro文件中要有一堆的include和libs要
配置,注意書(shū)寫(xiě)的路徑和文件名要和實(shí)際的相同,不要打錯(cuò),做錯(cuò)了哪一步,就會(huì)出現(xiàn)
如下的錯(cuò)誤。
qt報(bào)錯(cuò)error:No such file or direction
除此之外還有幾個(gè)問(wèn)題要注意的,我在搭建環(huán)境的過(guò)程中,用了好幾天的時(shí)間,至今仍有一些問(wèn)題,其中裝過(guò)的opencv和qt版本就有好幾個(gè),cmake也換了幾個(gè)版本,要讓他們之間相互兼容,就得知道哪些軟件用新的好,那些用舊的好,離線安裝和在線安裝也都試驗(yàn)了一下,問(wèn)題多多啊。
環(huán)境配置好了以后,仍然出現(xiàn)了幾個(gè)問(wèn)題,有語(yǔ)法上的也有配置上的。
qt報(bào)錯(cuò):Mat does not name a type
原因及解決辦法:多代碼文件采用頭文件和源代碼分離的形式,這時(shí),頭文件中函數(shù)的申明表達(dá)式中的數(shù)據(jù)類型并沒(méi)有在該頭文件(.h)中包含,只是寫(xiě)在了源代碼文件前面。所以,解決辦法就是把源代碼那里對(duì)應(yīng)函數(shù)的頭文件(<>)也寫(xiě)到頭文件(.h)中。
qt錯(cuò)誤:no matching function for call to 某個(gè)函數(shù)
原因及解決辦法:函數(shù)的申明里沒(méi)有寫(xiě)形參類型,導(dǎo)致函數(shù)在調(diào)用時(shí)無(wú)法對(duì)應(yīng)匹配的函數(shù)導(dǎo)致出錯(cuò),辦法是在頭文件的申明中把形參的類型補(bǔ)上,至于形參的變量可以不寫(xiě)。
程序報(bào)錯(cuò):this application has requested runtime
內(nèi)存讀取問(wèn)題,當(dāng)前路徑?jīng)]有文件,無(wú)法讀取文件,導(dǎo)致顯示失敗;解決辦法,判斷當(dāng)前讀取的內(nèi)容是否為空,再進(jìn)行其他操作。
到目前為止,我還是沒(méi)有解決在Qt上調(diào)用opencv的函數(shù)讀取圖片出現(xiàn)的顯示上的問(wèn)題。
---------------------------------------------------------------------------------------------------------------------
相隔幾天了,imread函數(shù)讀圖的問(wèn)題終于解決了,有亮點(diǎn)需要注意的地方,qt下的opencv不支持相對(duì)路徑,在用絕對(duì)路徑的時(shí)候,絕對(duì)不能用單斜杠“\”,而要用雙斜杠“\\”,我就是在這個(gè)問(wèn)題上卡死了好幾天,毫無(wú)進(jìn)展,最終在一篇博文看到才試了一下,嗨,終于解決這個(gè)問(wèn)題了。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。