TLD算法——compile经历种种错误 现身说法

以前在笔记本上跑过TLD算法,但是那是同学帮我调试的,因为才刚接触matlab,现在想在台式机上也配置一下TLD,于是亲自搞起,去https://github.com/zk00006/OpenTLD,下载opentld,然后编译,我台式机上装的是matlab2011b,和github上说的matlab2010a不一样,但是我想试试能不能跑起来,发现mex文件夹里的fern.cpp老是出错,后来吧char16_t 那三行注释掉,还不行,不知道怎么回事有提示,matrix.h 里面的319行有错误。心里想把matlab2010a的这个文件替换过来,发现果然compile通过,但是run_TLD时,还不行,出现好多莫名奇妙的错误,想着在其他盘装个matlab2010a算了,装好以后还要下个补丁,因为matlab2010不支持vs2010的compiler,因为我用的是opencv246在D盘根目录,所以改compile.m里的

 include = ' -ID:\opencv\build\include\opencv2 -ID:\opencv\build\include -ID:\opencv\build\include\opencv';
    libpath = 'D:\opencv\build\x86\vc10\lib\';

但是编译通过,run_TLD ,matlab崩溃:


因为我少了三个\ 应该是:

 include = ' -ID:\opencv\build\include\opencv2\ -ID:\opencv\build\include\ -ID:\opencv\build\include\opencv\';
    libpath = 'D:\opencv\build\x86\vc10\lib\';

注意是opencv\build\x86\vc10\lib,而不是bin,我就犯了这个错,好久才发现,include后面的-ID:其中-I是mex命令的一个选项,可以help  mex 一下,看看mex帮助,-I就表示后面的目录是编译包含的目录,其实这样就可以了,但是我当时还不知道是这个原因,我以为是opencv环境变量错了,于是我去改环境变量,加了个path变量,结果系统原有的环境变量没了,我又得把matlab 的两个环境变量和opencv的环境变量又加进去,但是还不行,这时我发现了上述错误,我更正以后,还是不行,要么compile不过,要么run_TLD出错,提示invalid mexfile 百思不得其解,后来发现,更改环境变量后要注销系统,结果成功! 还有matlab2010a 调用VS2010编译器的补丁在 http://www.mathworks.cn/support/solutions/en/data/1-D5W493/index.html?solution=1-D5W493 

追加:在编译的时候 先确认lib文件到底有没有,今天帮别人装tld,一个问题是,选择的编译器是vs2010的,但是opencv的库选的却是,vs2012的,(提示一下vc12表示是 vs2013,vc11才是vs2012),还有就是lib 变量对应的文件夹路径后面少了一个\ 这样就读不道Lib 文件编译的时候 就提示 无法解析的外部符合,等等。使用matlab212调vs2010的编译器 没有问题 可以直接用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值