关于VS2015支持编译Linux程序的问题
现状
目前已经发布的VS2015中包括VS2015 Preview 以及 VS2015 CTP6,这两个版本均不支持直接编译C++代码为Linux程序,具体情况可以参考 Visual Studio 2015 CTP 6 和 Visual Studio 2015 Preview。
正式版发布时间
在微软官网没有找到明确的发布时间,只是说在今年晚些时间发布。另外Windows10正式版的发布时间为夏末秋初,推测到时候VS2015正式版也会一起推出,参考文章夏末秋初!Windows 10正式版发布时间确认。
可能的问题
从目前各种资料来看,VS2015正式版发布后,有可能会支持Linux程序的开发和编译,但更大的可能性是通过C#开发,来达到跨平台的可能,目前微软已经开源了DotNet CoreCLR,计划支持Windows、Linux、IOS三个平台。
从Opening up Visual Studio and .NET to Every Developer, Any Application: .NET Server Core open source and cross platform, Visual Studio Community 2013 and preview of Visual Studio 2015 and .NET 2015 这篇文章看,目前VS2015预览版已经通过Clang和Llvm支持了C++开发Android程序,即将会支持IOS程序。由此可以推断,VS2015也可能会支持C++开发Linux程序,并且是通过Clang编译器进行编译。 这种情况下,VS会提供编辑和编译的功能,应该不会具有调试Linux程序的功能,即使可以调试,也必须配置虚拟机才行。同样还有可能有下面的限制,用C++开发,还必须使用标准语法,不能直接调用Windows API、Windows特有的库,必须使用跨平台的库才行,MFC程序可能还是无法跨平台,开发界面程序需要Qt或者C#等。
其他方案
即使VS2015正式版发布后,不支持C++直接编译生成Linux程序,那么还是有其他的可选方案,比如:VisualGDB。VisualGDB是VS的一个插件,安装了此插件后,就可以使用VS进行编辑、编译、调试Linux程序,当然,必须准备一个Linux系统的虚拟机。它的原理是使用VS编译代码,使用SSH+GCC进行远程编译,使用SSH + gdbserver + gdb进行远程调试。而且,使用VisualGDB后,只需要懂简单的make或者CMake语法,就可以进行完整的开发调试,智能提示、调试程序与VS开发Windows程序基本上没有区别。
VisualGDB不止支持Linux系统,还支持Solaris等Unix系统、Mac、嵌入式、Cygwin等操作系统,基本上,只要支持SSH、gcc、gdbserver的系统,都可以使用VS + VisualGDB的方式进行开发。 比如:
其他参考资料
Visual Studio Upcoming Features Timeline
微软公布VS 2015产品线,可直接生成Linux二进制程序
关于VS2015支持编译Linux程序的问题的更多相关文章
- delphi怎样编译LINUX程序
delphi编译LINUX程序 DELPHI XE 10.2(TOKYO)开始可以开发LINUX控制台程序. 1)上传PASERVER到LINUX,并且运行PASERVER. 2)开始编译,PROFI ...
- Windows10 VS2017 C++编译Linux程序
#include <cstdio> #include <iostream> #include "unistd.h" using namespace std; ...
- 在虚拟机上利用宿主机共享目录编译linux程序
#前提条件: 宿主机:windows7 虚拟机:REDHAT 开发环境 qt4.7.4 +vs2010 . 代码在windows7 上编译成功 ,运行正常 在linux下编译需要的第三方库已经编译成功 ...
- vs2015上编译QT程序的环境搭建
下载相对应版本的QT(以QT5.7.0为例),进入网站http://download.qt.io/archive/qt/5.7/5.7.0/,下载MSVC版本QT,我的系统是64位,VS版本是2015 ...
- vs2017 编译linux项目
官方文档1: https://blogs.msdn.microsoft.com/vcblog/2017/04/11/linux-development-with-c-in-visual-studio/ ...
- 使用VS+VisualGDB编译调试Linux程序
Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...
- Linux下通过源码编译安装程序(configure/make/make install的作用,然后在/etc/profile文件里修改PATH环境变量)
一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...
- 35、在编译Linux内核中增加程序需要完成以下3项工作
在编译Linux内核中增加程序需要完成以下3项工作: 将编写的源代码拷入Linux内核源代码的相应目录. 在目录的Kconfig文件中增加关于新源代码对应项目的编译配置选项 在目录的Makefile文 ...
- Linux下通过源码编译安装程序
本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...
随机推荐
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- 记一次tomcat线程创建异常调优:unable to create new native thread
测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is ...
- JavaScript function函数种类
本篇主要介绍普通函数.匿名函数.闭包函数 目录 1. 普通函数:介绍普通函数的特性:同名覆盖.arguments对象.默认返回值等. 2. 匿名函数:介绍匿名函数的特性:变量匿名函数.无名称匿名函数. ...
- 虚拟dom与diff算法 分析
好文集合: 深入浅出React(四):虚拟DOM Diff算法解析 全面理解虚拟DOM,实现虚拟DOM
- Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm ...
- UWP开发之Mvvmlight实践八:为什么事件注销处理要写在OnNavigatingFrom中
前一段开发UWP应用的时候因为系统返回按钮事件(SystemNavigationManager.GetForCurrentView().BackRequested)浪费了不少时间.现象就是在手机版的详 ...
- MAC Osx PHP安装指导
php.ini的位置 Mac OS X中没有默认的php.ini文件,但是有对应的模版文件php.ini.default,位于/private/etc/php.ini.default 或者说 /etc ...
- 代码的坏味道(18)——依恋情结(Feature Envy)
坏味道--依恋情结(Feature Envy) 特征 一个函数访问其它对象的数据比访问自己的数据更多. 问题原因 这种气味可能发生在字段移动到数据类之后.如果是这种情况,你可能想将数据类的操作移动到这 ...
- PhpStorm和WAMP配置调试参数,问题描述Error. Interpreter is not specified or invalid. Press “Fix” to edit your project configuration.
PhpStorm和WAMP配置调试参数 问题描述: Error. Interpreter is not specified or invalid. Press “Fix” to edit your p ...
- 微信开发笔记(accesstoken)
access_token分两种 一种是公众号权限获取用,调用cgi-bin接口 ,此种token一个公众号同时只有一个,用这一个就够了. 服务器最好缓存. 用这个token前提是用户关注了此公众号. ...