vlfeat重编译以及visual studio与matlab联调
来源:互联网 发布:vscode搭建rails 编辑:程序博客网 时间:2024/06/06 09:58
Vlfeat重编译包括两个层次:
1. 浅层的可以参考vlfeat官网上关于vl_compile 的介绍:http://www.vlfeat.org/matlab/vl_compile.html;这个函数通过mex函数来重新编译matlab与c++的接口函数,加入调试的方法是在mex函数的参数里面加入’-g’参数,修改方式如下:
在vl_compile()文件中加入下图的第140行:
用这种方式重新编译的时候其他的必须确保其他的c函数已经生成了链接库,这种方式除了能大体分析matlab与C++的接口之外,没什么其他用途。真正想调试进入C++的算法实现需要用makefile重新编译所有的文件,就是下面第二种方式;
2. 官网上对于这种方式有讲解,但是讲的非常简单,http://www.vlfeat.org/compiling-windows.html
实际中由于自己的环境的问题需要修改的地方也不尽相同,下面的这个帖子讲的非常详细:
http://blog.csdn.net/u012211419/article/details/50311807
我自己的环境是windows10:vs2013+matlab2014+vlfeat0.9.20,按照上面的帖子编译成功了,需要注意的地方:
按照自己的环境修改nmakefile.mak
我修改的地方如下:
(如果是win32自行修改50-62行),其他就不用改了
确保自己有makefile.mak中的下列文件:
如果没有就下载补上即可;链接: http://www.ilovematlab.cn/thread-298097-1-1.html (matlab2014也好用).
不要用visual studio生成解决方案编译,用visual studio tools里面的本机工具命令提示
如果在里面切换不到你的vlfeat 目录下,将vlfeat移到桌面或者c盘然后再切换(不知道为啥。。);
输入下面的命令就可以编译了:
下面再用matlab与VS进行联合调试即可,这里把之前vs与matlab联调的方式也给出来:
1) mex的时候在需要调试的文件编译后边添加-g参数,(这个一般在make.m(matlab的编译文件)里面添加)
2) 在matlab中在调用c函数的地方设置断点;
3) 打开VS,在VC的工具->附加到进程的对话框中选择matlab进程;
4) 在VS中打开需要调试的文件,在需要的地方设置断点,会提示无法调试,不用管这个
5) 回到matlab按F11步进到c函数,此时进程就跳转到了VS中
6) 然后就可以在VS中调试c程序了。
需要注意的是每次修改libsvm的代码之后需要重新make,否则调用的还是原来生成的库。
问题:
Vs中附加到进程的时候出现问题:一直处于加载符号状态,这个是由于加载的目录设置的问题,通过下面的方式修改:
我也遇到同样的问题,但我已经解决了,首先到工具->选项->调试->符号,将Mincrosoft符号服务器前面的勾去掉,再点击清空符号缓存,接着删掉在此目录下缓存符号路径C:\Users\Administrator\AppData\Local\Temp\SymbolCache。成为默认状态“符号缓存目录…”点击确定,重启VS加载项目OK.
- vlfeat重编译以及visual studio与matlab联调
- Visual Studio配置VLFeat库
- vlfeat说明以及matlab配置vlfeat失败的解决方式
- vs2013+matlab 编译vlfeat 64位
- Matlab与Visual Studio的联合编程
- Visual Studio配置VLFeat库(一次配置,永久生效)
- Visual Studio中Debug与Release编译模式的区别以及Preprocesor directives的使用
- Visual Studio+OpenCV3.2+CMake编译;Matlab+mexopencv混编
- json在visual studio 2015上面的编译以及使用
- matlab中配置vlfeat
- 使用Visual Studio重构与分析Python
- Visual Studio编译:MSBuild
- Visual Studio 编译 clang
- Visual studio 编译记录
- Visual Studio静态编译
- Visual Studio编译libmodbus
- Visual Studio编译出错
- Visual Studio编译错误
- hihocoder1245 王胖浩与三角形
- flex 获取屏幕分辨率
- IO流2(字符流缓冲区、字节流、装饰设计模式、转换流)
- Java for Web学习笔记(十四):JSP(4)JSP Tag
- android事件传递
- vlfeat重编译以及visual studio与matlab联调
- LeetCode 328. Odd Even Linked List Java
- MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
- JAVA多线程实现的三种方式
- 函数名前后加const修饰符的区别
- clob类型的 映射文件、 bean文件
- NYOJ 246 Human Gene Functions dp
- 设计模式: 8. 模版方法模式(Template Method)
- iOS Layout 技术回顾及 Masonry 介绍