这是一个奇怪的需求,但是因为VS我用的比较熟,所以折腾了一下。
我使用的VS2019,而Linux是安装在虚拟机里面的Ubuntu,虚拟机是virtualBox。但是真正的Linux电脑,树莓派等也是可以同样配置的。
首先要装上VS的Linux开发支持,打开VS安装程序,选择使用C++的Linux开发。
这样VS的准备就完成了。
然后VirtualBox这边的话,把Ubuntu的网卡改成桥接网卡(也许不桥接也可以)。它的工作原理是VS使用了远程连接,连接到Linux编译调试,所以Ubuntu里面还要装上ssh的服务。
sudo apt-get install openssh-server
然后用ifconfig命令看了看虚拟机里面的网卡ip是192.168.20.217,和我的windows网卡在同一个网段。
现在准备工作完成了,开始创建项目。打开VS,创建一个Linux项目,如图:
其实创建CMake的也可以,但是我对CMake不熟。而这个Console的项目,和windows的项目基本一样。
我创建了一个项目叫cario_test,用来测试下Cario这个图形库。
第一次编译Linux项目前,先配置下。
打开菜单Tools-Options,如图:
点击右侧按钮Add,如图:
输入刚才的虚拟机的IP,用户名,密码。成功后就变成这样,可以把Default选项勾上。如图:
接下来比较重要的一步,是搞定智能提示。用VS主要就是用这个嘛。点开Connection Manager,如图:
点击右边的Download按钮,这个功能是把Linux的头文件全下载到本地,VS靠这些头文件来做智能提示。得稍微等一会。这一步完成后,以后如果新安装了Linux的开发库,还要来Download下。
接下来就是配置项目了,打开项目的属性,如图:
配置成刚才创建的Linux。重点来了,如果要开发和图形相关的程序,如图:
要加上这一句:
export DISPLAY=:0.0
这样开发图形界面和3D程序也可以。
最后就是常规的路径配置,用的是Linux的路径,如图:
吐槽一下,pkg-config无法正常使用,加上``也不好使。只能手工把库和头文件加入列表。
现在可以编译运行程序了,智能提示,断点/调试一切都和开发windows程序一样。不同的是,程序在Linux的机器上运行,如图:
友情提示下,菜单Debug - Linux Console可以打开Linux控制台,这里可以看到stdout的输出。