1. 程式人生 > >Windows下開發、除錯Linux C/C++程式

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 

VisualKernel product)

² 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,新建專案,出現如下介面,表明安裝成功:

1.jpg

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,修改對應主機的設定,如下:

2.png

編譯效果

3.png

除錯效果

4.png

嵌入式Linux程式

建立工程

對於編譯、除錯在不同linux下的。比如說交叉編譯在一個linux下,但執行、除錯在另一linux下的嵌入式開發。可以在建立工程時,如下配置:

5.png

不同點有2:

Remote toolchain:遠端編譯工具鏈,要指定。

Deploy : 部署主機也要選。

環境要求

兩個linux都要有SSH服務。

編譯用linux還要有交叉編譯工具鏈。

部署用linux還要有gdbserver。

一般情況下編譯用linux都有SSH,工具鏈也可得到。但部署用linux一般都沒有SSH、gdbserver,需要仔細找下SDK,看是否提供。如果沒有,可以下載openssh、gdb交叉編譯一個出來。

除錯效果

6.png

Linux上的檔案

在交叉編譯Linux上,會自動建立如下目錄及檔案:

7.png

在部署Linux上,會自動建立如下目錄及檔案:

8.png

相關推薦

Windows開發除錯Linux C/C++程式

背景 據我所知,開發Linux C/C++ 程式的一般方式,如下: ² 使用SecureCRT+UltraEdit(FTP)工具遠端編輯、編譯(Makefile+gcc)、除錯(gdb)Linux程式。 ² Windows 上裝Linux虛擬機器,在虛擬機器上使用Vim、g

windows開發linuxc++方法

我是從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 WindowsVSCode編譯除錯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】WindowsVSCode編譯除錯c/c++【更新】

————————– 2017.06.10 更新————————- 便攜版已更新,點此獲取便攜版 用於cpptools外掛的配置檔案更新 更新的launch.json // Available variables which can be used inside of strings. // ${work

【VSCode】WindowsVSCode編譯除錯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

windowsphpmysql環境搭建

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下安裝