2015-06-04 103 views
0

我已經安裝了32位Qt,並且有OpenCV2.4.10(來自源代碼)的64位編譯二進制文件。我有兩個問題:OpenCV2.4.10與Qt

  1. 我在安裝Qt之前構建了OpenCV庫。但從我所瞭解的情況來看,更多的是使用Qt風格的用戶界面,但沒有必要與Qt進行交互。我應該重建OpenCV嗎?

  2. 當我嘗試64位Qt時,它不工作,因爲OpenCV是用VS 2013編譯的 - 它只有32位。所以我轉移到了32位Qt,但它仍然給我鏈接器錯誤的形式: mainwindow.obj:錯誤LNK2019:無法解析的外部符號「void __cdecl cv :: fastFree(void *)」(?fastFree @ cv @ @ YAXPAX @ Z)的函數引用 「公衆:__thiscall CV ::墊::〜墊(無效)」(?? 1Mat @ CV @@ QAE @ XZ) 我增加了包括在.pro文件路徑和庫。 我得到的錯誤,因爲Qt是32位,我正在使用64位OpenCV?

我一定要使用64位的OpenCV。有沒有一種方法可以讓Qt與OpenCV進行交互?或者有任何其他方式使GUI與C++/OpenCV?

感謝,

回答

0

如果你覺得會發生什麼,當你按下編譯按鈕,然後你就會明白,爲什麼你不能有兩個不同的架構集存儲庫。

當您編譯程序在32位它的方式,32(一個巧合64)位架構能夠理解和底層硬件上運行的編碼。

但是32位硬件是絕對不能運行64位架構集編碼的程序,所以會發生什麼,當你嘗試包括兩個不同的二進制文件到您的應用程序?視覺工作室如何知道如何一起構建它們?

這可能是值得擁有,以便收集更好地瞭解一下thisthis

現在在回答:

我一定要使用64位的OpenCV。有沒有一種方法可以讓Qt與OpenCV進行交互?或者有任何其他方式使GUI與C++/OpenCV?

如果確實需要64位OpenCV,那麼你將不得不尋找一種方法來使用64位Qt或不使用Qt。 Here是如何啓動和運行的良好指南,您需要向Visual Studio添加一些額外功能。

你當然可以使用QtCreator,但如果你對Visual Studio更加舒適,可能需要付出額外的努力。