VScode:万能IDE
使用VScode也蛮久了,写C++,Go,Python都可以用,免费且好用。但一直是用来做本地开发用,后来用上WSL2+Docker在windows上开发linux程序,但总体上WSL资源占用还是比较大,机器配置低一点资源会有点紧张。
后来发现其实直接用VScode在远程服务器上的Docker环境下开发也非常方便,非常建议使用这种方式,特别是开发一些需要特殊环境的程序,比如需要英伟达显卡CUDA加速的程序,或者开发ARM平台的程序等。可以远程在带英伟达显卡的机器的Docker容器里面,ARM服务器的Docker容器里进行开发,而开发体验基本和本机开发无异。从WSL到VScode,逐渐体会到微软真心强大。
安装Remote Development扩展,这个扩展其实已经包含了四个扩展:WSL,Dev Containers,Remote - SSH,Remote - Tunnels。看字面意思就大概可以理解他其实已经包含了在WSL容器,远程SSH服务器,通过SSH建立隧道在远程服务器的Docker容器内开发调试的功能。下面我们重点讲通过宿主机SSH建立隧道在远程服务器的Docker容器环境下开发调试方面的内容
远程资源管理器中选择远程隧道/SSH,点击新建
设置要远程的服务器IP用户名等,点击连接,这里可以输入密码,也可以通过配置SSH密钥的方式实现免密登录。
这样就进入远程服务器,可以直接打开其中的文件在这个远程服务器环境下进行开发调试。当然,我们不满足于此。
我们要在远程服务器访问其中的Docker容器,有个前提,需要登录该宿主机的SSH账号有docker的相关权限,或者直接是用了root。
确定用户是有权限后,这时候远程资源管理器中开发容器显示的就是远程服务器上的Docker容器了。
只要选择一个容器后进行附加,就可以在该容器中进行开发了
比如开发go,安装了go的扩展(VScode会根据项目提示安装对应的扩展的)就可以直接打断点调试了。
更厉害的是,如果程序是提供接口的,调试运行的时候,VScode会自动讲Docker容器内的端口通过SSH隧道转发到运作vscode这台开发PC上。也就是调试时候只要通过访问本地端口就可以,完全和在本机开发无异。
还有跟逆天的功能,向来在docker容器内运行一些带GUI的程序是个问题,而我们在开发调试程序时候确实有时候需要用到GUI界面能看到更直观的效果,或者提供一些便利的UI操作。比如cmake-gui,比如调试图像算法使用opencv的imshow等等,刚开始我也是忍了,cmake我写命令,opencv我保存图像下来看咯,但最近搞个交通仿真的项目,必须用GUI来看效果了。
使用VScode + XLaunch 居然可以将远程docker的Xserver发送到开发环境本地,实现GUI界面显示和操作。
好像是要安装Remote X11(SSH)扩展,我貌似之前是安装了,但有没有用到不确定
安装Xming-6-9-0-31-setup.exe
和 Xming-fonts-7-7-0-10-setup.exe
然后运行XLaunch,我是都按默认Next
然后就启动了一个VcXsrv服务,然后只要在项目的.vscode
文件夹下的launch.json
里添加
"env":{
"DISPLAY":"VScode所在IP:0.0"
}
比如pythhon就类似
{
"configurations": [
{
"name": "Python 调试程序: 当前文件",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env":{
"DISPLAY":"192.168.58.230:0.0"
}
}
]
}
再进行调试运行,就可以看到GUI了
新车首发,新的一年,只带想赚米的人coinsrore.com
部分语句稍显冗长,可精简以增强节奏感。
?语言类评语?
文章紧扣主题,观点鲜明,展现出深刻的思考维度。
哈哈哈,写的太好了https://www.lawjida.com/