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

 更新时间:2017年03月13日 08:49:24   作者:星夜落尘  
这篇文章主要为大家详细介绍了使用Visual Studio 2017作为Linux C++开发工具的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

2.本机安装好visual studio 2017,需要选择安装Cross Platform Linux C++环境。

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

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

5.设置好一系列选项(黑体部分),与普通的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下的绝对路径。





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


实际开发

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

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

更多文章,查看主页

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • RabbitMQ .NET消息队列使用详解

    RabbitMQ .NET消息队列使用详解

    这篇文章主要为大家详细介绍了RabbitMQ .NET消息队列使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • c#.NET 写txt文件小例子

    c#.NET 写txt文件小例子

    在.NET里,有时要往TXT文件里写内容,其实很简单。
    2013-06-06
  • ASP.NET简化编辑界面解决思路及实现代码

    ASP.NET简化编辑界面解决思路及实现代码

    简化用户操作界面,添加功能一般没法简化,但是如果是在GridView做显示,编辑,更新与删除,会让用户在编辑,需要点击编辑铵钮,再进行编辑,或是取消编辑,下面是改进的方法做了演示动画,感兴趣的朋友可以了解下
    2013-01-01
  • 在ASP.NET中插入flash代码实例

    在ASP.NET中插入flash代码实例

    这篇文章介绍了在ASP.NET中插入flash代码实例,有需要的朋友可以参考一下
    2013-11-11
  • ASP.NET中Request.Form中文乱码的解决方法

    ASP.NET中Request.Form中文乱码的解决方法

    一直以为,只有 Request.QueryString 接收url查询字符串含中文时可能会乱码(做好编解码工作,很容易可以避免),碰到的时候,才知道 Request.Form 接收表单的值中含中文也会乱码,以前真是很傻很天真很无知。
    2011-03-03
  • JavaScript验证用户输入的是字符或数字及ASCII Chart应用

    JavaScript验证用户输入的是字符或数字及ASCII Chart应用

    我们可以根据onkeydown事件的event.keyCode即是ASCII Chart来判断字符或数字等,本文提供了相关键盘key对应的ASCII码,以供用户使用是参考及使用onpaste事件只能输入字符和数字防止粘贴等的,感兴趣的朋友可以了解下
    2013-01-01
  • Asp.Mvc 2.0实现用户注册实例讲解(1)

    Asp.Mvc 2.0实现用户注册实例讲解(1)

    这篇文章主要介绍了Asp.Mvc 2.0如何实现用户注册,实例讲解很细致,注册功能是每个网站必不可少的组成部分,感兴趣的的朋友可以参考下
    2015-08-08
  • Asp.net6.0 Swagger使用问题及解决过程

    Asp.net6.0 Swagger使用问题及解决过程

    这篇文章主要介绍了Asp.net6.0 Swagger使用备忘,文中介绍了在Docker中显示OpenApiInfo的中文内容,显示xml注释及如何显示Header的问题,需要的朋友可以参考下
    2022-05-05
  • c#委托与事件(详解)

    c#委托与事件(详解)

    本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论
    2012-12-12
  • 轻量级ORM框架Dapper应用之返回多个结果集

    轻量级ORM框架Dapper应用之返回多个结果集

    这篇文章介绍了使用Dapper返回多个结果集的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03

最新评论