lib库调用笔记+调试时进入源文件的问题

 1.最近项目开发中遇到一个特别奇怪的问题,在词汇树训练得到数据字典(高维空间的坐标系)之后写入文件,分布式计算结点连接到主控制结点时加载该文件构造词汇树,读取时意外的每层都未能初始化最左枝(词汇树为6层每册10个结点),传递指针也确定没错(同时尝试了&((*root)->subTreeNode[i])和(*root)->subTreeNode+i),调用程序是debug版,出错(因为未能依次构建没有完整读入词汇文件使得词汇低于训练出来的结果一开始相当困惑,囧)的时候调用的lib库是Release版(编程严谨性确实有待加强),万般无奈之下试着将lib库改成Debug版,程序如预期执行,基本上确定这问题是Debug调用Release库引发的,但就是有点搞不懂明明C24结尾的指针到了下一层调用就编程了C28,好困惑;

 

2.这次顺便解决先前遇到的一个头疼的问题,在调用opencv库(cvKmeans2函数)一直苦于无法进入源文件进行调试无法查看函数具体的执行过程,在集成开发环境中设置源文件路径也无济于事(都还不确定源文件搜索路径的用处,引用其他源文件作为本项目的一部分之间可以引入的路径?),后来编译了2.2的64位版本确能进入到源文件进行调试(完全没有其他设置),这次反复进行了测试,大致总结如下:能否进入源文件调试与Debug和Release版没有关系,并不是Debug版本中包含了源文件信息,当源文件被修改后就无法进入其中调试,提示没有对应的源文件是否显示反汇编,觉得库文件包含了源文件路径信息(而非源文件副本)并且包含文件的版本(修改时间信息),所以当调试时检测对应路径的源文件比记录的要新就不进入源文件内部进行调试(觉得这种保守策略确实也合乎情理),所以要进入源文件内部调试只需确保所链接的库文件是根据最新的源文件编译而成;(或许我之前修改了opencv2.1版本的部分源文件,但是包含cvKeans2()的源文件应该没动过,作为整体文件夹时间戳检查?)

一个小测试也加强了前面的论断(将源文件更名——不影响源文件的版本信息),调试时提示没有对应的源文件,将名字改回来就可立即进入里面调试;

 

3.使用#pragma comment预处理指令导入链接库的问题,当源文件更新时才会重新链接(以自我本体为中心),而链接的库更新了调用者是不关心的(反应的滞后性),兼顾太多因素影响编译效率,程序员也不能太懒散~,虽然库是链接的是先前版本(不是最新生成的),只要源文件未修改(更新时间相同),也可以进入源文件内部进行调试;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值