openCV无法解析的外部符号-CvSVM、HOGDescriptor

本文介绍了如何解决在使用OpenCV库时遇到的‘无法解析的外部符号’错误,通过添加正确的附加依赖项来确保项目能够顺利编译。具体包括不同版本的OpenCV所需的库文件,如ml210d.lib和cvaux210d.lib等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般遇到“无法解析的外部符号”问题出自项目中未添加“附加依赖项”。

而CvSVM的依赖项则为ml.lib

在版本2.0的openCV中,即为ml200d.lib,

在版本2.1的openCV中,即为ml210d.lib

 

HOGDescriptor 的依赖项则为cvaux210d.lib

为项目的Debug配置增加依赖的库:

cv210d.lib cvaux210d.lib cxcore210d.lib highgui210d.lib ml210d.lib opencv_ffmpeg210d.lib

 

#include "stdio.h"
#include <ctype.h>
#include "cvaux.h"
/*#pragma comment(lib,"ml.lib") */
using namespace cv;  
using namespace std;  

// int main(int argc, char** argv)
int _tmain(int argc, _TCHAR* argv[])
{    
 vector<string> img_path;//输入文件名变量 
 vector<int> img_catg;  
 int nLine = 0;  
 string buf;  
 ifstream svm_data( "E:\\My Documents1\\vs08svmhog\\SVM_DATA.txt" );//首先,这里搞一个文件列表,把训练样本图片的路径都写在这个txt文件中,使用bat批处理文件可以得到这个txt文件   
 unsigned long n;  


注意:路径用是双右斜杠
### 解决 OpenCV 编译或链接时出现的无法解析外部符号问题 当遇到 `LNK2019` 无法解析外部符号错误时,通常意味着链接器未能找到某些函数的具体实现。这类问题可能由多种因素引起。 #### 确认环境配置准确性 确保 Visual Studio 中关于 OpenCV 的环境设置无误至关重要。具体来说,应仔细核对包含路径、库目录以及附加依赖项中的 `opencv_worldXXX.lib` 是否已正确定义[^2]。 #### 使用 CMake 构建项目 对于希望继续使用 VS2017 并解决其默认工具集带来的兼容性挑战的情况,采用 CMake 来构建应用程序是一个可行的选择。尽管过程相对复杂一些,但这能有效规避因平台工具版本差异而导致的问题[^3]。 ```bash mkdir build && cd build cmake .. -G "Visual Studio 15 2017 Win64" ``` 此命令创建了一个新的构建文件夹并初始化了针对 Windows x64 架构优化过的 MSVC 工程结构。 #### 修改编译选项至较低版本标准 考虑到部分情况下更改使用的 C++ 标准也可能有助于解决问题,在项目属性里调整 `/std:c++latest` 或其他较新标准到更早的标准如 `/std:c++14` 可能会有所帮助。 #### 安装 NuGet 包管理器插件 利用 NuGet 自动化处理第三方库集成工作能够简化流程。然而需要注意的是,当前阶段下并非所有组合都能完美适配最新版 Visual Studio 和 OpenCV 版本之间的协作关系。因此有时仍需手动干预来修正潜在冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值