最近需要写一个linux防火墙程序,发现可以在windows上安装Visual studio code通过插件远程连接linux。这对于习惯了windows界面编程的我是最佳选择。
linux系统:
尽量采用新的版本,我之前版本是centos 5.8,结果vscode连接时报一堆错,系linux基础语言库版本低导致。后来换成centos8,不再报错。而且阿里云centos8上已安装了openssh、gcc等常用软件。需要安装的是g++(不装这个vscode代码里会提示找不到头文件)
按网上方法下载Remote-SSH插件,安装完成后会出现一个远程资源管理器图标,其中可以选择SSH Targets:
然后点击配置,并在右侧的命令窗口中选择第一个配置文件。
配置文件如下所示,其中Host是名字(随便写,比如小电脑图标旁那串IP就是名字),HostName 是需要远程连接的ip,也就是我们安装的linux系统的ip地址,User 是远程用户名(如:root),正确设置后保存关闭即可。
左侧栏打开Extentions,找到已经安装好的Remote -SSH,右键点击,选择“Extension Settings”
在Config File中输入config文件路径 (一般被放在为“C:\Users\user_name\.ssh\config”)
配置文件中一组信息(host-hostname-user)对应着一个连接目标,会在ssh targets下显示对应目标。可以选择一个目标,进行远程连接。
选择远程平台为linux
输入前面配置文件中user用户对应的登录密码
连接成功之后可以在左下角看到连接标识。
设置ssh免密登录
windows端:
方法是在windows上安装openSSH,然后利用它生成一对公私钥,放到C:\Users\user_name\.ssh\目录下,并在该目录config文件中添加:
IdentityFile "C:\Users\IBM\.ssh\id_rsa"
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
基中IdentityFile指出了私钥路径。
服务器端:
(1)将客户端的公钥文件用ftp上传到服务器,然后再复制为username/.ssh/authorized_keys
(2)将.ssh文件夹权限设为700,将authorized_keys文件权限设为600
(3)在/etc/ssh/sshd_config文件中添加:
PasswordAuthentication yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
配置C++开发环境
针对vscode远程连接linux服务器进行c++开发的情况,一般常用的是采用c_cpp_properties.json,tasks.json和launch.json进行环境配置。
a).c_cpp_properties.jsonc_cpp_properties.json文件可以打开命令面板,然后点击c/c++编辑配置即可打开。首次打开时,会在.vscode文件夹自动创建该文件。
c_cpp_properties.json文件是c/c++插件对应的配置文件,允许用户更改前面设置中的部分选项,例如编译器的路径,包含路径,C ++标准(默认为C ++ 17)等,我配置的c_cpp_ properties.json文件内容如下,其中includePath字段新增了“/usr/include/**”路径,这个路径中放置了linux系统常见的头文件,包括c++相关头文件,便于实现项目开发。编译器采用的是g++,若linux系统中未安装g++,则要先进行安装。
{
"configurations": [
{
"name": "Linux",
"includePath": [ //搜索头文件时的路径
"${workspaceFolder}/**", //默认路径
"/usr/include/**" //新增路径
],
"defines": [],
"compilerPath": "/usr/bin/g++", //编译器路径
"cStandard": "c99", //编译时采用的c标准
"cppStandard": "c++14", //编译时采用的c++标准
"intelliSenseMode": "gcc-x64" //智能模式
}
],
"version": 4
}
配置完成之后我们可以在当前项目文件夹中新建一个简单的hello word程序进行练习,如下所示:
b).tasks.json
如果有多个任务需要协调,就需要通过taks.json文件来设定build环境。可以在里面配置多个任务,每个任务其实就是帮你在终端输入指令(执行类似 gcc -g main.c -o main
的命令)。需要注意的一点是,tasks.json的"label"参数值和launch.json的"preLaunchTask"参数值需要保持一致。
launch.json文件用以配置VS Code以在按F5调试程序时启动GDB调试器。若linux系统中未安装gdb,则要先进行安装。在左侧主菜单中,选择“运行和调试” ,然后点击蓝色按钮,选择“ C ++(GDB / LLDB)”,此时vscode自动打开launch.json文件。首次打开时,会在.vscode文件夹自动创建该文件。
launch.json文件内容示例如下。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动", //名称随便取
"type": "cppdbg", //正在使用的调试器,使用Visual Studio Windows时必须为cppvsdbg,使用GDB或LLDB时必须为cppdbg
"request": "launch", //表示此配置是用于启动程序还是附加到已运行的实例上
"program": "${workspaceFolder}/hello_word", //要执行的可执行文件的完整路径
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}", //可执行程序完整路径(不包含程序名称)
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
设置完成之后,在程序指定位置添加断点,并在“运行和调试”界面开启调试即可进行程序调试。
调试时在编辑器的顶部,将显示一个调试控制面板,可以进行单步、多步调试控制,同时在编辑器左侧会显示局部变量、监视的变量和程序调用堆栈等信息。
参考:https://cloud.tencent.com/developer/article/1945311
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)