VisualStudio的新版本已经开始支持远程编译调试Linux了,我安装了VS2017,尝试在Windows上写了一个Linux服务程序,非常方便。
基本原理
能支持Linux开发的也只是在最新的版本中才行,好像应该是2015起。当然在安装VS的时候必须勾选跨平台下的Linux,没有安装的打开安装器可以添加补充上。
在创建项目的时候,需要选择一个Linux服务器,一般都是通过SSH连接的,然后VS会在SSH登录成功后的目录下创建一个 projects
目录,创建的工程目录全部在此目录下,在编译的时候通过将工程文件拷贝到Linux服务器上,然后通过执行GCC命令来编译。
这里要吐槽的是
- 文件必须添加到工程
- 没有使用编译脚本
先说第一点,在windows平台上,要编译的CPP文件肯定是要加入到工程里的,但是H文件却可以不需要,在使用Linux编译的时候,VS是按照工程结构拷贝文件的,没加入到工程组织里面的,是不会拷贝过去的导致无法编译成功。然后是第二点,VS在前面某个版本都支持了CMake了,为何不使用其作为编译脚本呢,而是单独同Windows上一样的配置,个人感觉脚本方式更好,因为不是所有人都使用VS进行开发。
调试使用的是 gdb-server
没啥好说的。
智能提示
如果只是简单远程编译,我记得很早就有类似工具了。VS强大的在于其智能提示功能,那么在使用Linux项目的时候是否也能智能提示呢,答案是肯定的。
在我们添加了Linux服务器后,VS就会在后台把该Linux服务器上默认位置下的编译需要的头文件全部进行本地缓存,并通过扫描实现智能提示,使用起来和本地操作并无二致。
C++程序肯定要添加一堆非系统库或者自定义库,VS是否能支持扫描呢,通过测试,发现在项目中添加了远程目录后,VS会将该目录同样进行下载缓存,确实是非常强大。
当服务器端头文件变更等,需要在连接管理器刷新缓存,这需要手动操作。或者重启IDE,因为当IDE重启的时候也会重新刷新。
代码调试
使用VS调试Linux程序也非常方便,和Windows下一致,虽然使用的是GDB,但是在IDE下操作依然是VC的快捷键进行调试,同时也完全支持查看内存以及在鼠标悬停在变量上的时候查看变量的值,要不是调试按钮上写的远程地址,否则真的很难发现是在调试Linux程序。
使用感受
使用起来确实非常强大,不愧为宇宙第一IDE,非常值得开发Linux的同学试试。
不过在调试的时候尽量选择网络访问非常快的服务器,要不然调试的时候,各种数据会出现的非常慢,特别影响效率。