2.这次顺便解决先前遇到的一个头疼的问题,在调用opencv库(cvKmeans2函数)一直苦于无法进入源文件进行调试无法查看函数具体的执行过程,在集成开发环境中设置源文件路径也无济于事(都还不确定源文件搜索路径的用处,引用其他源文件作为本项目的一部分之间可以引入的路径?),后来编译了2.2的64位版本确能进入到源文件进行调试(完全没有其他设置),这次反复进行了测试,大致总结如下:能否进入源文件调试与Debug和Release版没有关系,并不是Debug版本中包含了源文件信息,当源文件被修改后就无法进入其中调试,提示没有对应的源文件是否显示反汇编,觉得库文件包含了源文件路径信息(而非源文件副本)并且包含文件的版本(修改时间信息),所以当调试时检测对应路径的源文件比记录的要新就不进入源文件内部进行调试(觉得这种保守策略确实也合乎情理),所以要进入源文件内部调试只需确保所链接的库文件是根据最新的源文件编译而成;(或许我之前修改了opencv2.1版本的部分源文件,但是包含cvKeans2()的源文件应该没动过,作为整体文件夹时间戳检查?)
一个小测试也加强了前面的论断(将源文件更名——不影响源文件的版本信息),调试时提示没有对应的源文件,将名字改回来就可立即进入里面调试;
3.使用#pragma comment预处理指令导入链接库的问题,当源文件更新时才会重新链接(以自我本体为中心),而链接的库更新了调用者是不关心的(反应的滞后性),兼顾太多因素影响编译效率,程序员也不能太懒散~,虽然库是链接的是先前版本(不是最新生成的),只要源文件未修改(更新时间相同),也可以进入源文件内部进行调试;