ubuntu上面編譯並使用OpenCV

        最近學習QT及OpenCV的使用,所以嘗試下載了OpenCV,並且按照網上教程編譯。首先我下載的是OpenCV2.2編譯的時候出現了好多問題。先說一下我的編譯方法參考http://blog.csdn.net/moc062066/article/details/6617968。不過這裏我在cmake-gui中取消with_tiff與with_FFMPEG 。 

       編譯是好多錯誤,Opencv2.2與OpenCV出現錯誤差不多:

        1、error: ‘ptrdiff_t’ does not name a type   

             解決:加入include目錄下的cxcore.hpp   上面加上命名空間 using std::ptrdiff_t;

        2、OpenCV: undefined reference to `cvCreateCameraCapture_V4L(int)

             解決:http://blog.chinaunix.net/uid-23381466-id-3828667.html

       3、錯誤/opt/OpenCV-2.1.0/tests/ml/src/slmltests.cpp:104:20: error: ‘unlink’ was not declared in this scope

            解決:在每個錯誤文件上加上頭文件:#include <unistd.h>

        後來轉戰到OpenCV2.4.2,這個版本的編譯就簡單多了,按照之前的辦法,我在cmake-gui中取消with_tiff與with_FFMPEG。

       在Qt中使用OpenCV是需要添加頭文件及庫路徑,比如我是放在/usr/local/include /usr/local/lib這兩個路徑下,則在工程的pro文件中添加如下內容:

INCLUDEPATH +=  /usr/local/include/opencv \
                /usr/local/include/opencv2

LIBS += /usr/local/lib/lib*


注意,庫沒有添加成功的話會出現很多如下錯誤:

cameradialog.cpp:(.text+0x15):對‘vtable for CameraDialog’未定義的引用

cameradialog.cpp:(.text+0x28):對‘cvReleaseCapture’未定義的引用

cameradialog.o:在函數‘CameraDialog::CameraDialog(QWidget*)’中:

cameradialog.cpp:(.text+0xcb):對‘vtable for CameraDialog’未定義的引用

cameradialog.cpp:(.text+0xd2):對‘vtable for CameraDialog’未定義的引用

cameradialog.cpp:(.text+0x2e5):對‘cvCreateCameraCapture’未定義的引用


發佈了65 篇原創文章 · 獲贊 38 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章