vlfeat重編譯以及visual studio與matlab聯調
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.
相關文章
- Web編譯器Visual Studio擴充套件Web編譯套件
- C# 編譯器選項(Visual Studio配置)C#編譯
- 【譯】Visual Studio 的 Razor 編輯器的改進
- protobuf cmake Visual Studio 編譯安裝 (全命令列)編譯命令列
- boost 1.35.0 Visual Studio 2008編譯指南編譯
- 用Visual Studio將Objective-C編譯為C++Object編譯C++
- gRPC cmake Visual Studio編譯安裝 (全命令列)RPC編譯命令列
- 呼叫Visual Studio的cl.exe編譯C/C++程式編譯C++
- Visual Studio 編譯專案失敗,提示找不到檔案編譯
- windows下基於cmake配置opencv並使用visual studio編譯WindowsOpenCV編譯
- 【譯】New experimental Razor editor for Visual Studio
- Windows下Visual Studio 2013編譯Lua 5.1.4版本Windows編譯
- Windows下編譯Caffe並編譯Matlab介面Windows編譯Matlab
- Visual Studio Code 編輯器使用
- Visual Studio 開發彙編程式
- 如何在Visual Studio和CodeBlocks中反編譯C++程式碼BloC編譯C++
- Visual Studio C++ 安裝以及使用教程C++
- 【譯】Database Profiling with Visual StudioDatabase
- 【譯】使 Visual Studio 更加視覺化視覺化
- visual studio連線linux編碼Linux
- Visual Studio 2008重新整理頁面時不自動編譯編譯
- 【譯】使用 Visual Studio 除錯外部原始碼除錯原始碼
- 如何擴充套件 Visual Studio 編輯器套件
- 將編譯過的C++庫迅速部署在Visual Studio新專案中編譯C++
- 微軟釋出VSBT:無需安裝Visual Studio即可實現專案編譯微軟編譯
- Java編譯與反編譯Java編譯
- 【Matlab】BFSK的調製與解調模擬Matlab
- Matlab實現模擬調製與解調Matlab
- 【譯】Visual Studio 17.8 中我最喜歡的特性
- 【譯】如何在 Visual Studio 中安裝 GitHub CopilotGithub
- 使用Visual Studio 2015自帶的Python編譯環境程式設計Python編譯程式設計
- python與matlab混編PythonMatlab
- 重編譯 invalid 物件編譯物件
- Visual Studio Code
- Visual Studio Code好用的微軟程式碼編輯器微軟
- 【Visual Leak Detector】原始碼編譯 VLD 庫原始碼編譯
- Ubuntu下Android原始碼以及核心下載與編譯UbuntuAndroid原始碼編譯
- CSS預編譯與PostCSS以及Webpack構建CSS綜合方案CSS編譯Web