簡體   English   中英

Win7 / Eclipse / OpenCV / MinGW:每次啟動時應用程序崩潰

[英]Win7 / Eclipse / OpenCV / MinGW: Application crashes everytime it starts

經過與我和OpenCV的艱苦奮斗,我終於找到了本教程:

Eclipse教程上帶有MinGW的OpenCV (滾動到“帶有CMake和MinGW的OpenCV-”)

我已完成所有工作,但每次嘗試啟動應用程序時,它都會在幾秒鍾后停止響應,並顯示Windows警報通信。 我注意到,我可以自由地運行標准C ++程序並包含頭文件,但是在一行OpenCV代碼之后,它就無法正常工作。 也沒有關於錯誤的信息。

您為什么不嘗試使用官方教程http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html#linux-eclipse-usage

這是opencv文檔中的官方網站,它可以幫助您入門,它包括可讓您在許多其他平台上入門的教程http://docs.opencv.org/doc/tutorials/introduction/table_of_content_introduction/table_of_content_introduction.html#table-內容介紹

我也花了一點時間來運行OpenCV,但最終我發現了一些可行的方法(我使用Qt Creator作為我的IDE,而不是Eclipse,但也許問題和解決方案是相似的)。

最初,我嘗試下載OpenCV 2.4.8,但發現它不包含任何MinGW二進制文件。 我在網上關注了一個論壇並安裝了CMake,但似乎OpenCV 2.4.8不包含MinGW的CMake目標。 閱讀更多論壇后,我下載了OpenCV 2.4.3,並能夠將CMake和MinGW 4.8(Qt 5.2附帶的版本)一起使用來構建OpenCV。 這使我可以編譯程序並嘗試運行它們。 一些純c命令甚至可以像cvLoadImage一樣工作,但是任何c ++命令(例如imread或Mat :: zeros(3,3,CV_8UC1))都會導致崩潰。

我嘗試使用不同的選項再構建幾次openCV。 一些站點建議關閉SSE和SSE2或構建調試版本,但是這些都不適合我。

最后,我最終下載了TDM-GCC-32。 我下載了按需安裝程序,並確保獲得dw2版本的編譯器(因為前一陣子我花了一些時間處理dw2 vs sjlj不兼容問題)。 最后,我用TDM-GCC重建了OpenCV,並將TDM-GCC設置為Qt Creator中的編譯器。 最終解決了。

我認為OpenCV Mat類型使用的引用計數/分配代碼與MinGW的某些版本之間存在一些不兼容。 我之所以這樣說,是因為我所有的崩潰似乎都來自使用openCV矩陣的代碼段。 (似乎未正確初始化)。 切換到TDM-GCC編譯器可解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM