2016年4月2日 星期六

[c++]DEVc++5.11加上OpenCV2.4.9

        在這邊,因為我被這個該死的東西困擾很久。所以當我解決這個問題的時候,就上來跟大家分享啦!!

        這邊,我將會使用Dev C++ 5.11版 + OpenCV 2.4.9來做使用。

        首先,第一步當然是下載好Dev C++以及 OpenCV2.4.9。

        第二步,請大家將OpenCV解壓縮到C槽。


第三步,就是開始調整你的編譯器啦!

首先,打開Dev C++,在工具->編譯器選項。



圖上你可以看到,在連接器命令串中多了其他的字元,這些字元代表的是程式庫(lib),這東西代表的是你將要使用的程式庫,如果你想加入其他程式庫,你可以點選你的OpenCV資料夾去察看有哪些程式庫,如果你跟我存放的路徑一樣,你可以從 C:\opencv\build\x86\vc12\lib 去尋找,在這邊,我使用x86是因為5.11版本的MinGW貌似是只有32位元的,我用x64的會出現問題。

如果你不想打字,我這邊幫你附上命令串中的文字

-static-libgcc -lopencv_core249 -lopencv_highgui249 -lopencv_imgproc249

第四步,點選目錄->二進位檔。這邊的二進位檔,主要就是我們所謂的.dll檔,我們也同樣能從目錄中找尋到我們需要的dll檔。C:\opencv\build\x86\vc12\bin。之後的每一步都可以按照我塗上下去尋找即可











PS1.後記 : 在這邊,我前期使用的是OpenCV3.1.0版,這個版本的lib檔只有一種,那就是opencv_world310.lib,我使用同樣的邏輯在Dev C++中嘗試去使用他,但是他會像我剛剛講的出現Bug,所以我只好改回來使用較舊的2.4.9版本。

PS2.如果有出現警告訊息例如找不到highgui_249.dll檔,可以直接將剛剛上面提到的資料家中的該檔案抓出來丟在與你現在這個專案同一個資料夾下他就可以使用了。

7 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. 你好,不好意思請問一下,我的環境也是用Dev C++ 5.11 和 OpenCV 2.4.9 我照著上述步驟設定下去,發現跑一段C語言程式碼(如下)時,他會一直出現 "原始碼尚未被編譯",請問我大概哪個地方出錯?

    測試秀出一張圖片的程式碼:
    #include "stdio.h"
    #include "stdlib.h"
    #include "opencv/cv.h"
    #include "opencv/cxcore.h"
    #include "opencv/highgui.h"

    char FileName[] = "C:/Users/Dawi/Downloads/123.jpg";
    IplImage *Image1;

    int main(int argc, char** argv)
    {
    CvMat *Image = cvLoadImageM(FileName, CV_LOAD_IMAGE_COLOR);
    cvNamedWindow("Display window", 0);
    cvShowImage("Display window", Image);

    cvWaitKey(0);

    cvDestroyWindow("Display window");
    cvReleaseImage(&Image);
    }

    回覆刪除
  4. Now You Can Download DEV C++ use the following link
    Dev C++ 5.11

    回覆刪除
  5. 作者已經移除這則留言。

    回覆刪除
  6. 你好 請問如果遇到此狀況 是哪邊環境變數沒弄好嗎 我都有照上面弄
    undefined reference to `cv::imread(std::string const&, int)'

    回覆刪除