使用MinGW-gcc/g+编译openCV 2.3.1程序+;在Windows 7上64位
一周来,我一直在努力编译openCV程序。我已经尝试了在互联网上能找到的一切 我所做的是:我下载并遵循 在CMake(gui)中,我的源代码是:D:\opencv,构建目标是:C:\opencv 我还添加了C:\opencv\install\bin;C:\opencv\bin到我的系统的PATH变量 我想要的是使用MinGW的gcc/g++编译器在我的Windows操作系统上编译openCV程序 我尝试了在internet上找到的各种gcc/g++参数,并且每天都在使用-I和-L选项,编译器永远找不到openCV函数或结构 我试图编译的内容:使用MinGW-gcc/g+编译openCV 2.3.1程序+;在Windows 7上64位,windows,opencv,cmake,mingw,Windows,Opencv,Cmake,Mingw,一周来,我一直在努力编译openCV程序。我已经尝试了在互联网上能找到的一切 我所做的是:我下载并遵循 在CMake(gui)中,我的源代码是:D:\opencv,构建目标是:C:\opencv 我还添加了C:\opencv\install\bin;C:\opencv\bin到我的系统的PATH变量 我想要的是使用MinGW的gcc/g++编译器在我的Windows操作系统上编译openCV程序 我尝试了在internet上找到的各种gcc/g++参数,并且每天都在使用-I和-L选项,编译器永远
#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;
}
输出:
或使用g++:
输入:
输出:
旁注:尝试在VS2005中编译时,我会遇到相同的错误
谢谢你抽出时间 您有目录
C:\opencv\install\bin
,可以在gcc
/g++
命令行上找到库,但我认为您还需要指定用作链接器输入的库。我不确定哪些库是OpenCV发行版的一部分,但根据您链接到的说明页面上的示例,其中一个可能是:
-lopencv_calib3d220.dll
您可能需要添加一个或多个其他目录(遵循
C:\opencv\install\bin
目录中的名称模式lib*.a
,或者您应该传递-L
选项的其他lib
目录)。如果其他人需要解决此问题,下面是我如何获得发布的OpenCV/HighGUI示例代码,以便使用MinGW、MSYS和CMake在Windows 7 x64中编译:
- 确保安装了最新的CMake(v2.6或更高版本)和MinGW(带有GCC、G++和MSYS选项)
- 如果您想要新的基于Qt的OpenCV HighGUI前端,则需要安装Qt 4(SDK)
- 下载OpenCV源代码/superpack版本2.2或更高版本(我使用了OpenCV-2.3.1-win-superpack.exe)
- 将内容解压缩到[OPENCV\u SOURCE\u DIR](我将其放在C:/OPENCV中,因此在C:/OPENCV/README中应该有一个文件)
- 在别处创建一个[OPENCV\u BUILD\u DIR]目录(我使用C:/OPENCV/BUILD/mingw)
- 使用CMake GUI工具,将源目录指定为[OPENCV_source_DIR],将生成目录指定为[OPENCV_build_DIR],然后单击“配置”
- 您可能希望/需要调整选项(例如,我勾选“Qt”和“Qt OpenGL”条目,然后再次单击“配置”,然后必须提供qmake可执行文件的路径)
- 完成OpenCV配置后,单击“生成”
- 在MSYS终端中,浏览到[OPENCV_BUILD_DIR],然后运行“make”来生成代码(这可能需要一段时间)
- 正确构建后,运行“make install”,它会将构建的代码/库/include DIR收集到[OPENCV_BUILD_DIR]/install文件夹(如果您在使用CMake GUI工具时更改了相应的选项,则可以使用其他文件夹)
- 将[OPENCV\u BUILD\u DIR]/install/bin文件夹添加到PATH环境变量。如果您不知道如何做到这一点,那么我建议使用路径编辑器GUI工具
- 如果最终使用Qt,还需要将Qt SDK的bin文件夹放在PATH环境变量中。这是包含qmake.exe的文件夹
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
//只创建一个窗口
cvNamedWindow(“mainWin”,CV_窗口_自动调整大小);
cvMoveWindow(“mainWin”,100100);
cvWaitKey(0);
返回0;
}
gcc-o test-I“[OPENCV\u BUILD\u DIR]/install/include”test.c\
-L“[OPENCV\u BUILD\u DIR]/install/lib”\
-lopencv_core[OPENCV_版本]\
-lopencv_imgproc[OPENCV_版本]\
-lopencv_highgui[OPENCV_版本]
就我而言:
gcc-o测试-I”/c/opencv/build/mingw/install/include“test.c\
-L“/c/opencv/build/mingw/install/lib”\
-洛彭茨瓦努科雷231
-lopencv_imgproc231
-lopencv_highgui231
路径编辑器:很抱歉耽搁了。我什么都试过了,但仍然无法编译。我已经转向Python而不是C/C++了,现在一切都正常了。谢谢你的建议!Linux用户须知。在您的repo中可能会找到新版本的OpenCV,可能不需要下载源代码并制作它们。我的编译命令如下:
gcc main.c-lopencv\u core-lopencv\u imgproc-lopencv\u highgui-lm
。如您所见,不需要尾随数字。缺少Ome步骤:在CMake中,配置期间应选择什么?MSYS生成文件?MinGW Makefiles?
...\ccK4MfHv.o:test.c:(.text+0xa0b): undefined reference to `cvFree_'
g++ test.c -o test -I"C:\opencv\install\include" -I"C:\opencv\install\include\opencv" -L"C:\opencv\install\bin"
...\ccXCTKa1.o:test.c:(.text+0x1e): undefined reference to `cvNamedWindow'
-lopencv_calib3d220.dll