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机器的天然服务器特性。未来可期!
更多文章,查看主页。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
自我介绍 整体感觉来说面试比较简单,所以工资也低~ 在学校成绩如何,有没有获得奖学金,考研的时间等等相关问题 能实习多久,研究生研究的方向 你这个LinuxC++开发的学习是自学的吗,怎样的自学途径 我:看书、看视频,然后跟着写,然后遇到了新的知识,把组件加到现有代码中。 用socket接口实现服务器和客户端分别调用哪些接口 为什么用epoll? 我:列举select、poll的特点,说明epol
这里所说的开发工具,指的是前端开发使用的工具 一、浏览器调式工具 1、浏览器开发调式工具推荐三种 Google Chrome 推荐 ★★★★★ Firefox Firebug 推荐 ★★★★ Internet Explorer 推荐 ★★★ 2、说明: 以上是本人个人观点,当然,也是网上调查统计的结果。 使用Google Chrome开发者调式工具之前,我曾用过FireFox的Firebug调式工
问题内容: 我在OS X上使用boot2docker并克隆了以下存储库: https://github.com/enokd/docker-node-hello 它基本上有一个Dockerfile和一个非常简单的Express应用程序,可以打印世界。在构建和运行映像时,一切运行良好,但是,如果我在Mac上对index.js进行了任何更改,这些都不会反映在运行的映像中。我似乎找不到任何有关如何设置do
2.7.1 Emacs 很不幸,UNIX® 系统不像其他的系统那样带有一种“你要的全有,不要的更多”的,包含所有 的,巨大的程序开发环境。 [1] 但是,你可以搭建一个自己的开发环境。可能不会很漂亮,也不会非常集成化。但 是你可以按自己的需求来搭建。而且是免费的。你将拥有所有的源码。 问题的答案就是 Emacs。如今有很多人厌恶它,也有很多喜欢它。如果你是前 者之一,恐怕这一章不会引起你的兴趣。而
我正在同时开发一个服务器和它的客户端,我正在Docker容器中设计它们。我正在使用Docker Comment将它们连接起来,它在生产中工作得很好,但是我不知道如何在开发工作流中使它工作,在开发工作流中,我为每一个都运行了一个shell。 我的<代码>docker compose devel。yml: 我可以做甚至,但我想要的是服务器和客户端都运行一个shell,这样我就可以在迭代开发时对两者进行
现在你已经学会新建和合并分支,那么你可以或者应该用它来做些什么呢? 在本节,我们会介绍一些常见的利用分支进行开发的工作流程。而正是由于分支管理的便捷,才衍生出这些典型的工作模式,你可以根据项目实际情况选择一种用用看。 长期分支 因为 Git 使用简单的三方合并,所以就算在一段较长的时间内,反复把一个分支合并入另一个分支,也不是什么难事。 也就是说,在整个项目开发周期的不同阶段,你可以同时拥有多个开