我根据http://netbeans.org/community/releases/72/cpp-setup-instructions.html在我的电脑上安装了minGW,并且我使用已经找到所有必要文件的NetBeans 7.2“恢复了默认值”。
但是,当我制作测试样本C ++应用程序时,我遇到以下错误:
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -ladvapi32
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lshell32
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -luser32
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lkernel32
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/MinGW-Windows/welcome_1.exe] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
任何人都可以帮我安装openCV和minGW for NetBeans吗?
在“c:\ mingw \ bin”和“c:\ mingw \ lib”中
测试以下程序
下载OpenCV-2.4.2.exe(222.9 MB)http://sourceforge.net/projects/opencvlibrary/files/ 下载mingw-get-inst-20120426.exe(662.7 kB)http://sourceforge.net/projects/mingw/files/ 下载cmake-2.8.9-win32-x86.zip http://www.cmake.org/files/v2.8/cmake-2.8.9-win32-x86.zip
本手册中使用的所有参考文献:
本手册中的所有参考文献均以“T:\”开头。请更改为实际的驱动器号! (主要是“c:\”)
注意: 我在msys-mingw环境中使用的新项目总是在“C:\ msys \ 1.0 \ src”目录下。 为了具有相同的条件,gcc也应该是“4.7.0”而不是“4.6.2”
您可能已经注意到,您无法使用OpenCV-2.4.2.exe附带的库。 完全忽略文件夹“... \ opencv \ build \ x86 \ mingw \ bin”和“... \ opencv \ build \ x86 \ mingw \ lib”。
让我们来看看新的mingw文件。
启动mingw-get-inst-20120426.exe
使用:下载最新的存储库...
确保指定的目录正确,通常是“C:\ mingw”。 检查如下所述。 如果您还需要msys,那么也请选择“MinGW Developer Toolkit”。
现在MinGW-Get下载所有新文件。 (4.7.0)
运行“OpenCV-2.4.2.exe”。
文件所在的文件夹应为“c:\ msys \ 1.0 \ src”。 这会写入新目录“opencv”中的所有文件。 新文件夹:“C:\ msys \ 1.0 \ src \ opencv”。从现在开始,这是我们的顶级目录
打开“cmake-2.8.9-win32-x86.zip”并将文件复制到cmake文件夹。
运行“C:\ cmake \ bin \ cmake-gui.exe”
可能的错误:在PATH中找到了sh.exe
可能的错误:未设置CMAKE_MAKE_PROGRAM
现在它应该工作。 Cmake搜索编译器环境
Cmake显示选项页面
让我们生成Makefile
建立openCV
请耐心等待!
我的电脑大约需要4个小时
检查所有文件是否在正确的位置
避免复制和粘贴错误。这是download: 的2个文件
Makefile文件
MKDIR_P = C:/msys/1.0/bin/mkdir -p
DESTDIRB = build/Debug
DESTDIRD = dist/Debug
LIBDIRCV = ../build/mingw/lib
CFLAGS = -O2
CXX = C:/mingw/bin/g++.exe
Applic = imgdisplay
ALL: imgdisd
imgdisd:
$(CXX) $(CFLAGS) -c -g $(Applic).cpp -I../build/include -MMD -MP -MF $(DESTDIRB)/$(Applic).o.d -o $(DESTDIRB)/$(Applic).o
$(CXX) $(CFLAGS) -o $(DESTDIRD)/$(Applic) $(DESTDIRB)/$(Applic).o -L../build/mingw/bin $(LIBDIRCV)/libopencv_calib3d242.dll.a $(LIBDIRCV)/libopencv_contrib242.dll.a $(LIBDIRCV)/libopencv_core242.dll.a \
$(LIBDIRCV)/libopencv_features2d242.dll.a $(LIBDIRCV)/libopencv_flann242.dll.a $(LIBDIRCV)/libopencv_gpu242.dll.a $(LIBDIRCV)/libopencv_highgui242.dll.a $(LIBDIRCV)/libopencv_imgproc242.dll.a \
$(LIBDIRCV)/libopencv_legacy242.dll.a $(LIBDIRCV)/libopencv_ml242.dll.a $(LIBDIRCV)/libopencv_nonfree242.dll.a $(LIBDIRCV)/libopencv_objdetect242.dll.a $(LIBDIRCV)/libopencv_photo242.dll.a \
$(LIBDIRCV)/libopencv_stitching242.dll.a $(LIBDIRCV)/libopencv_ts242.a $(LIBDIRCV)/libopencv_video242.dll.a $(LIBDIRCV)/libopencv_videostab242.dll.a
md:
$(MKDIR_P) "$(DESTDIRB)"
$(MKDIR_P) "$(DESTDIRD)"
imgdisplay.cpp
/*
* File: imgdisplay.cpp
* Author: Administrator
*
* Created on 14. September 2012, 01:12
*/
#include <cstdlib>
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace std;
int main( int argc, char* argv[] )
{
cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
cvMoveWindow("mainWin", 100, 100);
IplImage* img;
img = cvLoadImage("D:/grafik/Lightroom/light01.jpg");
if (!img) {
std::cout << "Could not open the image file" << std::endl;
return -1;
}
cvShowImage("My Picture", img);
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
Netbeans 7.2创建了一个项目
使用如下所述的设置。
创建项目
创建一个新目标
注意:如果出现错误:Makefile:12:***缺少分隔符。停止。
主要是复制和粘贴错误! (确保起始行没有空格。但是设置了2个标签)。
创建新文件夹
projects文件夹现在看起来像..
建立项目
调试项目
程序在第17行停止
未解决的标识符
如果.cpp文件的来源是这样的
在项目上单击鼠标右键。
检查C/C++ Code As...
运行Reparse Project.
如果这还不够。
去Project Properties
按照描述填写Include
输入字段。
它也发生在我身上,但我使用make
而不是使用mingw32-make
,然后它起作用了。
你可以使用mingw32-make
安装mingw-get install mingw32-make