Visual Studio 2017

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

VS2017亮点很多,包括模块化安装、启动速度加快(第一次启动加快50%以上)、github插件、启动页完善、增强代码提示功能,等等,更多参考:https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes。

Visual Studio 2017 Support for Linux Development

VS2017可以编辑、编译、调试linux上的c++、python、node.js程序(详细)。

甚至可以编译调试.NET程序,支持的Linux平台包括:

  • CentOS 7.1 and Oracle Linux 7.1
  • Debian 8
  • Fedora 23
  • Linux Mint 17
  • openSUSE 13.2
  • Red Hat Enterprise Linux 7.2
  • Ubuntu 14.04 and 16.04

博主主要是c++作为开发语言,并且绝大部分代码都有跨平台的需求。博主一般步骤如下:

  • 在windows机器上使用visual studio开发大部分算法功能模块,并且调试优化完毕;
  • 在涉及到IO或者网络相关的部分,需要port到linux平台,痛苦的用vim编写代码,gcc编译,gdb调试。

重点关注其中Visual Studio在C++跨平台方面的亮点,即Visual C++ for Linux,有了它,就能用最先进的IDE进行跨平台的开发了,好开心!

Visual C++ for Linux

VC++ 2017支持在编写、调试Linux下的C++程序([详细(https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/))。

创建跨平台Linux C++程序,如图:

实际使用效果如下图,可以看到,能够在VS下面编译Linux代码,甚至包括linux特有的头文件。除了代码补全很爽之外,还有代码着色,可视化调试等各种优点。



使用步骤

  1. 目标linux机器上安装好编译环境与调试环境,如在ubuntu下,安装好openssh-server/g++/gdb/gdbserver等。
sudo apt-get install openssh-server g++ gdb gdbserver
  1. 本机安装好visual studio 2017,需要选择安装Cross Platform Linux C++环境。

  2. 打开Visual Studio,新建工程,选择Cross Platform/Linux/Console Application。

  3. 在第一次build之前会要求ssh连接到目标linux机器,填上用户名密码连接目标机器。如果需要更换目标机器地址,在Tools/Options/Cross Platform下进行管理。

  1. 设置好一系列选项(黑体部分),与普通的Win32程序的设置基本一致。需要注意如下2点:
  • vs不会自动把addtional include中的头文件复制到本地来做代码补全的提示,需要手动将linux下面的/usr/include、/usr/local/include等目录复制到vs的linux header path(如:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\Linux\include\usr)
  • 头文件包含目录和库文件包含目录均为linux下的绝对路径。









  1. 编译时vs会将代码复制到目标机器的~/projects/[project-name]目录下,二进制文件在其目录的bin目录下。如下图,Linux环境下可以看到,已经有代码了。



实际开发

在初步使用体验中,感觉这个vs for linux还不是特别成熟,有不少问题,包括:复制文件速度过慢、无法多线程编译、编译输出信息丢失(不够友好)、无法操作跳板机等。

不过该工具作为编码的辅助工具,仍然非常具有价值,结合了vs强大的的代码编辑与调试功能和linux机器的天然服务器特性。未来可期!

更多文章,查看主页

使用Visual Studio 2017作为Linux C++开发工具的更多相关文章

  1. visual studio 2017搭建linux c++开发环境

    https://blog.csdn.net/cekonghyj/article/details/77917433 https://blog.csdn.net/norsd/article/details ...

  2. Visual Studio 2017 ASP.NET Core开发

    Visual Studio 2017 ASP.NET Core开发,Visual Studio 2017 已经内置ASP.NET Core 开发工具. 在选择.NET Core 功能安装以后就可以进行 ...

  3. visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

    一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧. 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新. 第二步,将visual studi ...

  4. Gtest:Using visual studio 2017 cross platform feature to compile code remotely

    参考:使用Visual Studio 2017作为Linux C++开发工具 前言 最近在学Gtest单元测试框架,由于平时都是使用Source Insight写代码,遇到问题自己还是要到Linux下 ...

  5. Visual Studio 2017开发环境的安装

    Visual Studio 2017是微软为了配合.NET战略推出的IDE开发环境,同时也是目前开发C#程序最新的工具,本节以Visual Studio 2017社区版的安装为例讲解具体的安装步骤. ...

  6. 最强 IDE Visual Studio 2017 正式版发布

    Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...

  7. 终于等到你,最强 IDE Visual Studio 2017 正式版发布

    Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...

  8. Visual Studio 2017 for Mac 体验之Android.Form

    微软官方说明: Visual Studio 2017 for Mac Last Update: 2017/6/16 我们非常荣幸地宣布 Visual Studio 2017 for Mac 现已推出. ...

  9. Visual Studio 2017 for Mac

    Visual Studio 2017 for Mac Last Update: 2017/6/16 我们非常荣幸地宣布 Visual Studio 2017 for Mac 现已推出. Visual ...

随机推荐

  1. 建立、配置和使用Activity——使用Bundle在Activity之间交换数据

    当一个Activity启动另一个Activity时,常常会有一些数据需要传过去——这就像Web应用从一个Servlet跳到另一个Serlvet时,Web应用习惯把需要交换的数据放入requestSco ...

  2. SVG的基础使用

    SVG的基础使用: <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...

  3. 在ASP.NET Core下使用SignalR技术

    一.前言 上次我们讲到过如何在ASP.NET Core中使用WebSocket,没有阅读过的朋友请参考 WebSocket in ASP.NET Core 文章 .这次的主角是SignalR它为我们提 ...

  4. 内功心法 -- java.util.ArrayList<E> (2)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  5. 《JavaScript DOM 编程艺术 》 笔记

    一:这本书由几个案列带入知识点,通俗易懂.最大的收获莫过于作者多次提到的逐渐增强和平稳退化. "渐进增强"指的是给所用用户同等的基本使用体验,再根据用户终端的级别给予更高级的用户更 ...

  6. 日月如梭,玩转JavaScript日期

    一.Date对象 下面出现的源码都可以codepen在线查看. 1)时间戳毫秒计算 Date对象是基于"1970-01-01 08:00:00"到指定日期的毫秒数,不是" ...

  7. 使用python制作ArcGIS插件(1)工具介绍

    使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是 ...

  8. 程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。刚进CSDN的博客看到这么句话

    程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上. 而自己呢?是个程序员呢还是个业余玩家!

  9. 使用LVS实现负载均衡原理及安装配置详解

    负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学 ...

  10. 【craps赌博游戏】

    /* cpaps赌博游戏 说明: 一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,如果点数和为2.3 或12,则玩家输,如果和 为其它点数,则记录 ...