編譯基於OpenCV的Windows 7 64位使用MinGW的gcc / g++的2.3.1程序
#include <stdlib.h>#include <stdio.h>#include <math.h>#include <cv.h>#include <highgui.h>int main(int argc, char *argv[]){ // Nothing but create a window cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); cvMoveWindow("mainWin", 100, 100); cvWaitKey(0); return 0;}
錯誤: 輸入:
gcc test.c -o test -I"C:opencvinstallinclude" -I"C:opencvinstallincludeopencv" -L"C:opencvinstallin"
輸出:
...ccK4MfHv.o:test.c:(.text+0xa0b): undefined reference to `cvFree_"
或使用g++: 輸入:
g++ test.c -o test -I"C:opencvinstallinclude" -I"C:opencvinstallincludeopencv" -L"C:opencvinstallin"
輸出:
...ccXCTKa1.o:test.c:(.text+0x1e): undefined reference to `cvNamedWindow"
邊註:在VS2005嘗試我得到的錯誤。 感謝您本文地址 :CodeGo.net/432673/ -------------------------------------------------------------------------------------------------------------------------1. 在其他情況下,需要解決這個問題,在這裡我就是這樣在Windows 7 64位系統使用的MinGW,MSYS和C進行張貼OpenCV的/一下HighGUI示例代碼:從MinGW的/ MSYS / CMake構建基於OpenCV。這是我無法得到的版本在基於OpenCV雙贏SUPERPACK到的MinGW / MSYS /的Windows 7 X64的正確鏈接。 如需完整的參考,這裡是如何OpenCV的:確保你(用GCC,g++和MSYS選項)安裝有最新的最新的CMake(V2.6或更高版本)和MinGW 如果你想在新的基於Qt的OpenCV一下HighGUI前端,你將需要安裝的Qt 4(SDK)。 下載OpenCV的源/ SUPERPACK版本2.2或更高版本(基於OpenCV-2.3.1-雙贏superpack.exe) 解壓到[OPENCV_SOURCE_DIR](我把它放在C :/ opencv的 CodeGo.net,所以應該有一個文件在C :/ OPENCV / README為例) 其他地方創建一個[OPENCV_BUILD_DIR]目錄(C :/ opencv的/構建/ MinGW的) 使用CMake的圖形用戶界面工具,指定源目錄[OPENCV_SOURCE_DIR],build目錄為[OPENCV_BUILD_DIR],然後單擊「配置」。 您可能希望/需要去調整的選項(例如I勾選「QT」和「Qt的OpenGL的」項,然後點擊「配置」了,那麼必須提供的路徑qmake的可執行文件) 一旦你已經完成了OpenCV的配置,單擊「生成」 在MSYS終端,瀏覽到[OPENCV_BUILD_DIR],並運行「make」來構建代碼(這可能需要一段時間) 一旦已建成正常,運行「make install」會,收集內置的代碼/庫/ include目錄到[OPENCV_BUILD_DIR] /安裝文件夾(或不同的文件夾,如果你改變了相應的選項的CMake-GUI工具) 添加[OPENCV_BUILD_DIR] /安裝/ bin文件夾添加到PATH變數中。如果你不知道如何做到這一點,那麼我會使用路徑編輯器的GUI工具。 如果你最終的Qt,您也將需要投入的Qt SDK的bin文件夾中的PATH變數。這是一個包含qmake.exe的文件夾。把下面的代碼示例為一個名為test.c.文件我修改了包括稍微使用OpenCV的V2.2及以上。
#include <stdlib.h> #include <stdio.h> #include <math.h> #include <opencv/cv.h> #include <opencv/highgui.h> int main(int argc, char *argv[]) { // Nothing but create a window cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); cvMoveWindow("mainWin", 100, 100); cvWaitKey(0); return 0; }
在MSYS終端,瀏覽到你把test.c的文件夾,然後運行:
gcc -o test -I"[OPENCV_BUILD_DIR]/install/include" test.c -L"[OPENCV_BUILD_DIR]/install/lib" -lopencv_core[OPENCV_VERSION] -lopencv_imgproc[OPENCV_VERSION] -lopencv_highgui[OPENCV_VERSION]
所以,在我的情況:
gcc -o test -I"/c/opencv/build/mingw/install/include" test.c -L"/c/opencv/build/mingw/install/lib" -lopencv_core231 -lopencv_imgproc231 -lopencv_highgui231
路徑編輯器:2. 你有目錄,C:opencvinstallin
,定位在庫gcc
/g++
命令行,但我認為你還需要指定庫作為鏈接器輸入,以及。我不知道是什麼庫OpenCV的發行版的一部分,但你鏈接到頁面的指令去上由例如,一個可能是:
-lopencv_calib3d220.dll
你可能需要添加一個或多個其他的(後面的圖案lib*.a
在C:opencvinstallin
目錄-或者其他lib
你應該傳遞一個目錄-L
選項)。本文標題 :編譯基於OpenCV的Windows 7 64位使用MinGW的gcc / g++的2.3.1程序本文地址 :CodeGo.net/432673/
推薦閱讀: