1.下载安装vs开发linux程序的工具包

2.创建一个工程,选择跨平台里面的linux平台

3.写一段测试代码,这里就可以包含linux的系统头文件编译,不过vs下还是现实红的

#include <cstdio>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>#include <iconv.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/file.h>
#include <unistd.h>
#include <sys/mman.h>
#include <fcntl.h>#include <string>
#include <iostream>
#include <istream>
#include <iosfwd>
#include <sstream>
#include <fstream>
using namespace std;int fd_ = 0;
int size_ = 0;
char *buff_ = nullptr;void open_file(std::string file_name)
{fd_ = open(file_name.c_str(), O_RDONLY);if (fd_ == -1){size_ = 0;}else{struct stat st;int r = fstat(fd_, &st);if (r == -1){size_ = 0;close(fd_);}else{size_ = st.st_size;}}
}void unmap_file()
{if (fd_ != -1){close(fd_);munmap(buff_, size_);}
}
//if data is too big,create file spilt more file_index,mmap more times(hfrz ptr as start addr)
int mmap_file(int fd, char *buff)
{if (fd == -1){return -1;}buff = (char *)mmap(NULL, size_, PROT_READ, MAP_PRIVATE, fd_, 0);if (buff == (void*)-1){std::ostringstream oslog;oslog << "mmap failed:" << strerror(errno);cout << oslog.str() << endl;close(fd);return -1;}return 0;
}int main()
{char *buff = (char *)malloc(1024);const char *str = "hello world";memcpy(buff, str, strlen(str)+1);printf("hello from ConsoleApplication1!\n");mmap_file(23, buff);getchar();return 0;
}

然后选中调试,就弹出一个输入远程主机的信息,这里就和xshell使用ssh协议连接信息一样的输入:

4.编译调试,有个调试窗口要调出来,然后就可以看见linux控制台的输出信息了

编译输出控制台

5.登陆远程主机,可以看见启动的程序和源代码了

6.简要的分析一下原理

从vs编译的输出控制台我们可以看出编译是使用mingw32交叉编译,然后使用ssh协议将源代码拷贝到目标主机,看见gdbserver进程了,应该是vs使用ssh协议作为client与远程主机的gdbserver调试

一些配置信息也说明了这一点:

Visual Studio 2017开发linux程序使用实例及原理简析相关推荐

  1. Visual Studio 2017开发linux程序之libevent使用实例

    下载源码编译安装后,samle里面有个hello-world.c就是最简单的一个tcp server端程序了 /*This example program provides a trivial ser ...

  2. 如何用 Visual Studio 2017 开发 Arduino 应用程序

    如何用 Visual Studio 2017 开发 Arduino 应用程序 使用Visual Studio 2017 开发 Arduino 应用程序需要两个软件: Visual Studio Vis ...

  3. 使用 Visual Studio 2022 开发 Linux C++ 应用程序

    使用 Visual Studio 2022 开发 Linux C++ 应用程序 前置条件: Windows上需要先安装 WSL2,方法见: Install WSL | Microsoft Docs 在 ...

  4. DCMTK 3.6.2(MD支持库)与Microsoft Visual Studio 2017开发环境的搭建

    DCMTK 3.6.2(MD支持库)与Microsoft Visual Studio 2017开发环境的搭建 DCMTK 362MD支持库与Microsoft Visual Studio 2017开发 ...

  5. 使用Visual Studio 2017开发Windows UWP应用

    使用Visual Studio 2017开发Windows UWP应用 今天开始学习Windows UWP应用开发 学习的视频资料来自Bilibili上"微软信仰中心"添加翻译字幕 ...

  6. vs2017 linux工程设置头文件,使用Visual Studio 2017作为Linux C++开发工具

    Visual Studio 2017 VS2017亮点很多,包括模块化安装.启动速度加快(第一次启动加快50%以上).github插件.启动页完善.增强代码提示功能,等等,更多参考:https://w ...

  7. 使用Visual Studio 2017作为Linux C++开发工具

    Visual Studio 2017 微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/ ...

  8. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

    最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...

  9. 使用Visual Studio Code开发.NET程序

    Visual Studio Code 成为个人使用频率最高的应用程序了,层出不穷的插件为 Code 的应用场景提供了无限可能.本文介绍在 Visual Studio Code 中开发 .NET 程序的 ...

最新文章

  1. pip install python-docx报错_python各种模块的安装
  2. 服务端渲染vs客户端渲染到前后端同构
  3. qt中的update()
  4. oracle 10g安装黑框消失,win7下安装和卸载oracle 10g
  5. PANEL中显示窗体
  6. 第30课 棋盘上的学问 《小学生C++趣味编程》
  7. python上传文件 request_Python request 上传文件
  8. 是谁开发出手机曲面屏这种
  9. linux查询文件md5sum,Linux下通过md5sum生成MD5文件校验MD5
  10. python验证考拉兹猜想_Python考拉兹猜想输出序列代码实践
  11. 《东周列国志》第九十六回 蔺相如两屈秦王 马服君单解韩围
  12. 7天带你搞定一个图表框架echarts(七)
  13. Android远程真机调试(电脑使用 Vysor 控制手机)
  14. 非对称加密算法——RSA
  15. 3dsmax2020安装报1603错误的解决方法
  16. macOS下载【转载】
  17. 10.Python面向对象编程
  18. 带你开发一个完整的 node.js 项目
  19. Arduino成长日记6 - 中断机制
  20. Python10分钟入门教程,Python入门神图一张

热门文章

  1. linux换源 最最简单
  2. 回顾一些重要的CNN改进模型(你真的了解 Convolutional Neural Networks 么)
  3. 记录下两个孩子在MineCraft里面还原公寓的经历
  4. git reset --hard、git reset --sort及git revert区别
  5. 机器视觉:makefile编译调用Caffe框架的C++程序
  6. 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
  7. mysql的最佳索引攻略
  8. 亿级 Web 系统的容错性建设实践
  9. 聚类图像像素 Clustering Pixels Using K-Means
  10. C++ 3 基本数据类型