我如何解决链接错误我的Visual C++ 2008与OpenCV?
我是OpenCV的非常重要人物。我如何解决链接错误我的Visual C++ 2008与OpenCV?
我刚刚安装了OpenCV并使C++程序如下。
我的编译器是VISUAL C++ 2008
# include "highgui.h"
void main() {
IplImage* img = cvLoadImage("C:/OpenCV/samples/cpp/tutorial_code/images/lena.png",-1);
cvNamedWindow("lena",0);
cvShowImage("lena",image);
cvWaitKey(0);
cvReleaseImage(&image);
}
但它无法与错误信息来构建的,我解决不了这个问题。
错误消息如下。
(我的编译器是韩文版,我的错误信息翻译成英文。 和英文很差,但你可以理解它是如何处理的。)
1>------ begin build: project: image1st,: Debug Win32 ------
1> compiling)
1>image1st.cpp
1>c:\vs2008\ccp_file\image1st\image1st.cpp(17) : warning C4700: not inetialized ‘image’ use local variable
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>linking
1>image1st.obj : error LNK2019: _cvReleaseImage External Symbol(refrence positon: _main function) not defined.
1> image1st.obj : error LNK2019: _cvWaitKey External Symbol(refrence positon: _main function)not defined.
1> image1st.obj : error LNK2019: _cvShowImage External Symbol(refrence positon: _main function)not defined.)
1> image1st.obj : error LNK2019: _cvNamedWindow External Symbol(refrence positon: _main function)not defined.)
1>image1st.obj : error LNK2019: _cvLoadImage External Symbol(refrence positon: _main function)not defined.)
1>project: warning PRJ0018 : can not find the next environment variable.
1>$(OPENCV_DIR)
1>image1st – errors: 6, warning: 1
我修改了Visual C++环境如下修改。
我输入“$(OPENCV_DIR)\包括”中的“附加包含目录”条目,
,使“附加依赖”条目包括下一个的.lib文件OpenCV的教程 2.3版指南。
- 'opencv_core231d.lib'
- 'opencv__imgproc231d.lib'
- 'opencv__highgui231d.lib'
- 'opencv__ml231d.lib'
- 'opencv__video231d.lib'
- “opencv__features2d231d.lib '
- 'opencv__calib3d231d.lib'
- 'opencv__objdetect231 d.lib”
- ‘opencv__contrib231d.lib’
- ‘opencv__legacy231d.lib’
- ‘opencv__flann231d.lib’
而且包括和Visual C++环境的库目录被修改如下。
对于库:
- $(VSInstallDir)LIB
- $(VSInstallDir)
- $(FrameworkSDKDir)LIB
- $(WindowsSdkDir)\ LIB
- $(VCInstallDir)atlmfc \ lib \ i386
- $(VCInstallDir)atlmfc \ lib
- $(VCInstallDir)lib
- C:\的OpenCV \建立\ 86 \ VC10 \ lib中//改性
- C:\的OpenCV \建立\ 86 \ VC9 \ lib中//改性
- C:\的OpenCV \建立\ 64 \ VC10 \ LIB //改性
- C:\的OpenCV \建立\ 64 \ VC9 \ lib中//改性
- C:\的OpenCV \建立\ GPU \ 86 \ lib中//改性
- C:\的OpenCV \建立\ GPU \ 64 \ lib中//改性
对于包括:
- $(VCInstallDir)atlmfc \包括
- $(WindowsSdkDir)\包括
- $(FrameworkSDKDir)包括
- $(VCInstallDir)包括
- C:\的OpenCV \构建\包括\的OpenCV /的/修改的
- C:\的OpenCV \构建\包括\ opencv2 //改性
- C:\的OpenCV \建立\包括//改性
基本上看来,编译器无法找到OpenCV库或无法识别正确的。
请确保在库目录(C:\opencv\build\x86\vc10\lib
等)中指定的目录中找到需要的库(即opencv__xxx.lib
)。另外,您应该只为您的平台指定目录,即只有vc9
(因为您使用VS2008)和x86
/x64
取决于你的架构。
PRJ0018
警告表示OPENCV_DIR
环境变量未设置。你可以在系统属性对话框中做到这一点(通常你可以通过右键单击“我的电脑”并在Win7/Vista中选择“属性”,你必须进入“扩展系统设置”) ,有一个按钮“环境变量”。但是,如果您已经修改了包含目录,则可以省略“其他包含目录”设置。
看起来你的处理器首先不能识别出用户的帐号OPEN_CV ,确保系统\用户帐户是正确的。 为了做到这一点去系统属性 - >在先进的菜单 - >去环境变量 - >确保你的系统变量是正确的,如果不是请创建一个与您的开放CV库位置的路径。
它好像你是对做的一切, 我相信你的问题是,你已经错过了一些在后生成步骤...
其次,你必须复制dll文件从openCV库转移到项目的位置。 为了做到这一点,请在项目的后期构建步骤中包含适当的路径。 去你的项目:属性:看图片
,包括命令:
copy "C:\OpenCV2.31\CMake_Build\bin\Debug\*.dll"
copy "C:\OpenCV2.31\CMake_Build\bin\Debug\*.pdb"
好运
小号
库名称是怪异。寻找名称类似于cvaux的.lib。 –