Windows下開發、除錯Linux C/C++程式
背景
據我所知,開發Linux C/C++ 程式的一般方式,如下:
² 使用SecureCRT+UltraEdit(FTP)工具遠端編輯、編譯(Makefile+gcc)、除錯(gdb)Linux程式。
² Windows 上裝Linux虛擬機器,在虛擬機器上使用Vim、gcc、gdb來編輯、編譯、除錯。
使用IDE的方式,有:
² Linux裝Eclipse CDT,直接在虛擬機器上程式設計。
² Linux裝Eclipse CDT,通過X11埠轉發,實現Windows下編譯、除錯。
² Windows裝CDT,通過samba共享,使用gdbserver遠端除錯。但需要Linux下編譯。
那麼有沒有辦法實現在Windows環境下,開發、除錯 Linux C伺服器程式(64位)或嵌入式程式呢?答案就是VisualGDB。
VisualGDB介紹
VisualGDB是一個Visual Studio外掛,支援VS2008-2017主流版本。其目標是簡化使用Visual Studio的跨平臺開發。
支援的平臺
² Barebone embedded systems and IoT modules (see full list)(嵌入式系統和物聯網模組)
² Raspberry Pi and other Linux boards
² Linux kernel modules (separate
² Target your own devices and platforms with ExtensibilityAPI
提供的工具
² Embedded toolchains(嵌入式工具鏈)
² Cross-compilers for common Linux boards(通用Linux板卡上的交叉編譯器)
² Compilers/debuggers on Debian- and RedHat-based Linux(Debian、RedHat系列Linux上的 編譯器/偵錯程式)
² GDB Stub software like OpenOCD
單元測試
VisualGDB集成了流行的CppUTest和GoogleTest框架,滑鼠點選一下,就可以在以下平臺上進行單元測試:
² Embedded ARM devices via JTAG/SWD
² Linux machines and boards like Raspberry Pi
² Android devices
工程構建
VisualGDB 提供一個高效能MSBuild後臺,專為快速構建嵌入式和Linux工程,並提供了自動、精確的 IntelliSense。
如果工程已使用了GNU Make,CMake 或 QMake,也可很容易匯入VisualGDB。
強大的除錯體驗
VisualGDB在本地、SSH、JTAG除錯時,提供了和Visual Studio一致的體驗。你只需按F5,剩下的都由VisualGDB完成。
VisualGDB安裝
假設你已安裝了Visual Studio,我裝的是2010版本。
安裝完成後,開啟VS2010,新建專案,出現如下介面,表明安裝成功:
CSDN有舊版本破解版下載:http://download.csdn.net/download/a3676212/9630637
Linux伺服器程式
建立工程
工作原理
² 在本地Windows建立工程(VS2010),實現程式碼編輯功能。
² 在VS上build時,使用SCP(基於SSH),實現Windows與Linux程式碼同步。並使用SSH,操作Linux遠端伺服器,實現編譯功能。
² 在VS上Debug時,使用SSH在Linux上啟動gdbserver,實現除錯功能。
細節:
建立工程時,會將環境變數配置的標頭檔案下載到本地Windows,實現程式碼的提示、檢查功能。
遇到的問題
在build時,提示上傳程式碼失敗。此時在VS2010上點工具->SSH Host Manager,修改對應主機的設定,如下:
編譯效果
除錯效果
嵌入式Linux程式
建立工程
對於編譯、除錯在不同linux下的。比如說交叉編譯在一個linux下,但執行、除錯在另一linux下的嵌入式開發。可以在建立工程時,如下配置:
不同點有2:
Remote toolchain:遠端編譯工具鏈,要指定。
Deploy : 部署主機也要選。
環境要求
兩個linux都要有SSH服務。
編譯用linux還要有交叉編譯工具鏈。
部署用linux還要有gdbserver。
一般情況下編譯用linux都有SSH,工具鏈也可得到。但部署用linux一般都沒有SSH、gdbserver,需要仔細找下SDK,看是否提供。如果沒有,可以下載openssh、gdb交叉編譯一個出來。
除錯效果
Linux上的檔案
在交叉編譯Linux上,會自動建立如下目錄及檔案:
在部署Linux上,會自動建立如下目錄及檔案:
相關推薦
Windows下開發、除錯Linux C/C++程式
背景 據我所知,開發Linux C/C++ 程式的一般方式,如下: ² 使用SecureCRT+UltraEdit(FTP)工具遠端編輯、編譯(Makefile+gcc)、除錯(gdb)Linux程式。 ² Windows 上裝Linux虛擬機器,在虛擬機器上使用Vim、g
在windows下開發linux的c++方法
我是從java轉到c++的小白,這篇也是寫給同樣小白的人看的 1. 使用Clion 配合WSL 首先參考這幾篇文章 https://blog.csdn.net/u010606602/article/details/80782650 https://cloud.tencent.com/
windows 下開發linux c++ 環境搭建
安裝環境 在Windows 7上安裝了VirtualBox,然後在VirtualBox中虛擬了一個Ubuntu。 為了實現在ubuntu中訪問winows中的一些目錄,而且還起到一種交換檔案的方法,這裡使用的是共享資料夾。 1 建立Windows下的共享資料夾: 首先,在w
VSCode Windows下VSCode編譯除錯c/c++更新launch和tasks 2018.03.27
新的launch.json // Available variables which can be used inside of strings. // ${workspaceRoot}: the root folder of the team // ${f
【VSCode】Windows下VSCode編譯除錯c/c++【更新】
————————– 2017.06.10 更新————————- 便攜版已更新,點此獲取便攜版 用於cpptools外掛的配置檔案更新 更新的launch.json // Available variables which can be used inside of strings. // ${work
【VSCode】Windows下VSCode編譯除錯c/c++
本文轉自:http://blog.csdn.net/c_duoduo/article/details/51615381 本人根據自己的操作,修改了一些細節,用於C語言除錯。 ————————– 以下是原文 ————————- 這篇文章為blackkitty記錄在w
gcc和MinGW的異同(在cygwin/gcc做的東西可以無縫的用在linux下,沒有任何問題,是在windows下開發linux程序的一個很好的選擇)
實現 o-c tool 交叉 lin 分析 模擬 gcc編譯器 還要 cygwin/gcc和MinGW都是gcc在windows下的編譯環境,但是它們有什麽區別,在實際工作中如何選擇這兩種編譯器。 cygwin/gcc完全可以和在linux下的gcc化做等號,這個可以從bo
windows下編譯tensorflow原始碼 用其c++介面呼叫訓練好的模型
最近在研究如何用tensorflow的python庫訓練模型,生成pb檔案,再在c++中呼叫這個模型,完成前向的預測;所以就要使用其c++介面,這需要從原始碼編譯tensorflow。 根據官網給出的編譯器對應關係(詳見我的另一篇部落格),最新版(1.12版)的tensor
在Windows 7 X64位除錯執行Visual C++ 6.0不能正常退出
VC6在64位Windows7下除錯的時候,再結束除錯,程式無法退出。 問題描述:當我擊F5開始一個專案的除錯時,程式在我設定的斷點處停止,這時我按下Shift+F5後,vc6可以退出除錯狀態,但是WINDOWS系統的工作列上會留下前面除錯時產生的程序圖示。該程序不能被結束,即使我使用工作管理員,也不可以。這
ESP32系列教程:《入門篇:ESP32開發環境搭建優化》,windows下開發速度堪比Linux
github教程地址: 優化一:https://github.com/xiaolongba/wireless-tech/blob/master/%E8%BD%AF%E4%BB%B6/%E7%BA%A2%E6%97%AD%E6%97%A0%E7%BA%BF%E5%BC%80%E5%8F%91%
用eclipse整合開發環境開發、除錯arm linux程式
安裝交叉編譯器(arm-linux-gcc)以及整合開發環境(eclipse) 1.安裝arm-linux-gcc,不管你是從網上下載的,還是開發板光盤裡面的,都可以,版本也沒什麼限制,我的是arm-linux-gcc-4.3.2。 進入arm-linux-gcc
linux入門-使用vs2015開發與除錯linux下應用
如果覺得文章對你有幫助先點個贊 1、常見Linux下開發的流程 linux :vim/emacs +GDB windows+linux:source insight+winscp+GDB 都無法解決一個問題GDB除錯需要學習大量的GDB命令~而且操作起來不是很方便
Windows下基於VS2013呼叫caffe的C++介面
同事用VGG16訓練了一個人臉識別的網路,我想試試C++介面,這裡做一下記錄。 參考文章如下: 按照參考文章的步驟,先用VS2013新建一個工程,將D:\caffe-master\examples\cpp_classification\classificat
windows下使用Sublime Text3編譯執行C++程式
{ "cmd": ["g++", "-o", "${file_path}/${file_base_name}.exe", "-static-libgcc", "-static-libstdc++", "*.cpp"], "file_regex": "^(..[^:]*):([0-9]+):?(
windows下安裝、卸載mysql服務
mov bin all 安裝服務 art 執行 輸入 文件 bat 將下載下來的mysql解壓到指定目錄下(如:d:\mysql)安裝服務在命令行輸入d:\mysql\bin\mysqld -installnet start mysql卸載服務在命令行輸入net stop
windows下php、mysql環境搭建
ins ads unity 5.7 文件 all color 註意 ont php http://windows.php.net/download/ mysql https://dev.mysql.com/downloads/windows/installer/5.7.ht
windows下的pycharm配置 linux環境
alt 視圖 點擊 erp proc 但我 als 由於 無法 由於最近學習python的需要,為了方便程序的調試,嘗試在Windows下的Pycharm遠程連接到虛擬機中Centos下的python環境。(這裏我采用的是ssh的遠程連接)1、準備工作: 固定centos的
linux下 gdb+coredump 除錯偶發crash的程式
1. 開啟 core dump 檢視是否開啟 ulimit -c 如果輸出0, 說明沒有開啟。 方法一:使用命令 ulimit -c unlimited 可以開啟,但是隻對當前終端有效, 方法二: 配置 /etc/profile 檔案 su
Windows下反反除錯技術彙總
一、前言 對於安全研究人員來說,除錯過程中經常會碰到反除錯技術,原因很簡單:除錯可以窺視程式的執行“祕密”,而程式作者想要通過反除錯手段隱藏他們的“祕密”,普通程式需要防止核心程式碼被除錯逆向,惡意程式碼需要隱藏自己的惡意行為防止被跟蹤。就像病毒和殺軟的關係一樣,為了順利的逆向分析,有反除錯手段就有對應的破
Redis學習小結--windows下安裝、基本資料型別、持久化及Jedis
Redis:REmote DIctionary Server 遠端字典伺服器 是一個開源免費,ANSI C編寫,遵守BSD協議,支援網路, Key-Value分散式記憶體DB,基於記憶體執行,支援持久化NoSql DB,資料結構伺服器,提供多種語言的API 一:在Window下安裝