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.
相關文章
- Visual Studio 2022 靜態庫編譯編譯
- Web編譯器Visual Studio擴充套件Web編譯套件
- C# 編譯器選項(Visual Studio配置)C#編譯
- 【譯】Database Profiling with Visual StudioDatabase
- gRPC cmake Visual Studio編譯安裝 (全命令列)RPC編譯命令列
- protobuf cmake Visual Studio 編譯安裝 (全命令列)編譯命令列
- 【譯】Visual Studio 的 Razor 編輯器的改進
- Windows下Visual Studio 2013編譯Lua 5.1.4版本Windows編譯
- windows下基於cmake配置opencv並使用visual studio編譯WindowsOpenCV編譯
- 呼叫Visual Studio的cl.exe編譯C/C++程式編譯C++
- 【譯】New experimental Razor editor for Visual Studio
- visual studio連線linux編碼Linux
- 20200115 - Visual Studio Code 編輯器
- 【譯】Visual Studio 2019 的 Local Process with Kubernetes
- 【譯】Visual Studio 2022 - 17.10 效能增強
- 【譯】使 Visual Studio 更加視覺化視覺化
- Visual Studio C++ 安裝以及使用教程C++
- 【譯】Visual Studio 2022 - 17.8 的效能改進
- 【譯】使用 Visual Studio 除錯外部原始碼除錯原始碼
- 將編譯過的C++庫迅速部署在Visual Studio新專案中編譯C++
- 【譯】如何在 Visual Studio 中安裝 GitHub CopilotGithub
- 無需離開 Visual Studio 即可編寫 Markdown
- Visual Studio Code
- Visual Studio Tips
- 【譯】Visual Studio 中的 GitHub Copilot:2023年回顧Github
- 【譯】Visual Studio 17.8 中我最喜歡的特性
- python與matlab混編PythonMatlab
- 【譯】Visual Studio Enterprise 中的程式碼覆蓋率特性
- Visual Studio Code Active File in StatusBar 擴充套件以及 Extension API 概述套件API
- 【Python】—{Visual Studio Code}Python
- Microsoft Visual Studio CodeROS
- 安裝 Visual Studio
- Visual Studio 快捷鍵
- 【Visual Leak Detector】原始碼編譯 VLD 庫原始碼編譯
- 專為 Laravel 定製的 Visual Studio Code 編輯器Laravel
- Visual Studio Code好用的微軟程式碼編輯器微軟
- Visual Studio與JetBrains WebStorm一些對比AIWebORM
- Matlab與Verilog的聯動Matlab
- 【譯】Visual Studio 17.10 釋出了新版擴充套件管理器套件