vscode远程开发配置

想使用VSCODE的远程开发,方便开发Linux程序,故写下这篇文章

1、VSCODE远程插件安装

搜索Remote Development插件,安装即可

打开CMD窗口或终端窗口,输入

ssh-keygen -t rsa

生成密匙,Windows一般生成在当前用户的.ssh文件夹下。我的在c:/User/com/.ssh文件夹下,然后将公匙复制到目标机器上

scp -p c:/User/com/.ssh/id_rsa.pub com@192.168.0.107:/home/com/.ssh/authorized_keys

其中 c:/User/com/.ssh/id_rsa.pub是公匙的路径,就是在上面生成密匙时的保存路径下,com@192.168.0.107是要登陆的服务器IP地址和用户,:/home/com/.ssh/authorized_keys是目标机器上的保存路径,一般选要登陆的用户目录下,可能需要在用户目录下新建文件夹.ssh,记得前面有个点号。

受Linux安全限制,必须将目标机器上的.ssh文件夹权限设为700,.ssh/authorized_keys文件权限设置为600。

然后通过ctrl+shift+p打开设置Remote-SSH:Open Configuration File

一般选当前用户下的.ssh文件夹保存配置

按照下面格式填写目标机器信息,其中Host后面是显示的明成,HostName是目标机器的IP地址,User是登陆的用户名,Port是ssh端口,默认22,可以不用写。IdentityFile是私匙路径

保存后,就会在VSCODE的远程服务器上显示该目标机器了


右键该机器,选择连接,就可以免密登陆了

 

/////////////////////////////////////////////////////

docker容器免密登陆

运行容器时,指定端口映射,例如-p 20022:22 将容器的22端口映射到主机的20022,然后通过docker exec命令进入容器,安装openssh-server,启动sshd服务(可能需要在运行docker run启动容器的时候,带上 --privileged和/usr/sbin/init,才能在容器中使用systemctl命令),windows系统下没有ssh-copy-id,所以我是先将windows系统下的.ssh文件夹上传到linux服务器上,在linux服务器上使用ssh-copy-id -p 20022 root@192.168.0.100 , 复制公钥到容器上,其中192.168.0.100是宿主机器的IP。复制的时候可能会提示Bad owner or permissions on .ssh/config,运行sudo chmod 600 ./ssh/config 将上传的.ssh文件夹里的config的权限修改成600,然后就可以免密登陆docker容器了

<think>我们正在处理一个关于在VSCode远程开发环境中配置OpenCV库的问题。用户已经提供了一些引用,这些引用包含了在不同系统(Linux、Mac)下配置OpenCV以及使用VSCode远程开发的相关信息。我们的任务是根据这些引用,总结出在VSCode远程开发环境下配置OpenCV库的方法。 引用分析: [^1]: 提到在Linux下安装OpenCV和VSCode配置,以及用CMake配置OpenCV项目。 [^2]: 在Mac下通过brew安装OpenCV,并给出了一个测试代码示例。 [^3]: 关于使用SSH和VSCode进行远程开发,连接嵌入式设备。 [^4]: 解决在远程服务器上使用OpenCV和matplotlib时出现的显示问题(qt.qpa.xcb错误)。 [^5]: 在Linux下配置OpenCV的依赖,并设置软链接以便在VSCode中使用。 用户的需求是:在VSCode远程开发环境中配置OpenCV库。 根据引用,我们可以将步骤分为以下几个部分: 1. 远程服务器上安装OpenCV(包括依赖) 2. 配置VSCode远程开发环境(通过SSH) 3. 配置VSCode项目以使用OpenCV(包括CMake配置或者直接编译配置) 4. 解决可能的显示问题(如果需要在远程显示图像) 步骤详细说明: 步骤1:在远程服务器上安装OpenCV - 对于Linux(Ubuntu)系统,参考和[^5]: - 安装依赖库: ```bash sudo apt-get update sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev ``` - 安装OpenCV(可以从源码安装,也可以使用包管理器安装)。使用包管理器安装(例如): ```bash sudo apt-get install libopencv-dev ``` 或者按照[^5]中提到的,安装opencv4: ```bash sudo apt-get install libopencv-dev # 或者 sudo apt install libopencv-dev python3-opencv ``` - 验证安装:`pkg-config --cflags --libs opencv4` 或者对于旧版本使用`opencv`代替`opencv4`。 - 对于Mac系统,参考[^2]: ```bash brew install opencv ``` 步骤2:配置VSCode远程开发环境 - 参考[^3]和[^4],使用VSCode远程开发扩展(Remote-SSH): - 在VSCode中安装Remote-SSH扩展。 - 配置SSH连接到远程服务器。 - 连接后,在远程环境中安装必要的VSCode扩展(如C/C++扩展、CMake Tools等)。 步骤3:配置项目以使用OpenCV - 使用CMake(推荐): 创建CMakeLists.txt文件,包含以下内容: ```cmake cmake_minimum_required(VERSION 3.10) project(YourProjectName) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(main main.cpp) target_link_libraries(main ${OpenCV_LIBS}) ``` 然后使用CMake Tools扩展进行配置和构建。 - 如果没有使用CMake,需要在VSCode的c_cpp_properties.json中配置包含路径和链接库,参考: 在远程环境中,打开命令面板(Ctrl+Shift+P),运行“C/C++: Edit Configurations (JSON)”,然后添加: ```json "includePath": [ "/usr/include/opencv4", ... // 其他路径 ], "linkerPath": [ "/usr/lib" // 根据实际情况调整 ], "libraries": [ "opencv_core", "opencv_highgui", "opencv_imgcodecs" ] ``` 步骤4:解决远程显示问题(如果需要显示图像窗口) - 参考引用[^4]:当在SSH远程开发中使用OpenCV的imshow或者matplotlib时,可能会遇到显示问题。解决方法: - 使用X11转发:在SSH连接时添加-X或-Y选项(在VSCode的SSH配置中,可以设置"forwardX11": true)。 - 在远程服务器上设置环境变量(如果遇到qt.qpa.xcb错误): ```bash export DISPLAY=:0 ``` 或者根据实际情况设置正确的DISPLAY变量。 - 如果使用VSCode远程窗口,也可以考虑将图像保存为文件,然后在本地查看,或者使用VSCode的Image Preview插件。 测试代码(参考): ```cpp #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { Mat srcImage = imread("test.jpg"); // 确保图片路径正确 if (srcImage.empty()) { cout << "Could not open or find the image" << endl; return -1; } imshow("Display Image window", srcImage); waitKey(0); return 0; } ``` 注意事项: - 在远程服务器上运行图形界面程序需要X11转发,并且本地需要有X服务器(比如Xming for Windows,Mac和Linux通常自带)。 - 如果不需要显示窗口,可以避免使用imshow,而是保存图像到文件。 生成相关问题: 1. 如何解决远程开发中OpenCV的imshow无法显示图像的问题? 2. 在VSCode远程开发中如何配置CMake项目使用OpenCV? 3. 如何在没有图形界面的服务器上使用OpenCV的图像显示功能? 根据以上步骤,我们编写回答。 </think> ### VSCode 远程开发环境下配置 OpenCV 库的方法 在 VSCode 远程开发环境中配置 OpenCV 库需要完成以下关键步骤: --- #### 一、服务器端 OpenCV 安装 1. **安装依赖库** 通过 SSH 连接远程服务器执行: ```bash # Ubuntu/Debian sudo apt update sudo apt install build-essential cmake libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev # MacOS brew install opencv ``` [^2] 2. **安装 OpenCV** - **APT 安装(推荐)**: ```bash sudo apt install libopencv-dev python3-opencv ``` - **源码编译安装**: ```bash git clone https://github.com/opencv/opencv.git cd opencv && mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make -j$(nproc) sudo make install ``` 3. **验证安装** ```bash pkg-config --modversion opencv4 # 输出版本号即成功 # 或检查 Python 交互环境 python3 -c "import cv2; print(cv2.__version__)" ``` [^5] --- #### 二、VSCode 远程环境配置 1. **安装 Remote-SSH 扩展** - VSCode 中搜索安装 `Remote - SSH` (MS 官方扩展) - 配置 SSH 连接文件 (示例): ```config Host my-remote-server HostName 192.168.1.100 User username Port 22 ForwardX11 yes # 关键!启用图形转发 ``` [^4] 2. **连接远程服务器** - 点击 VSCode 左下角 `><` 图标 - 选择 `Connect to Host...` → 输入配置的主机名 --- #### 三、项目环境配置 1. **C++ 配置(CMake 项目)** 创建 `CMakeLists.txt`: ```cmake cmake_minimum_required(VERSION 3.10) project(OpenCV_Remote_Project) find_package(OpenCV REQUIRED) add_executable(main main.cpp) target_link_libraries(main ${OpenCV_LIBS}) ``` [^1] 2. **配置 c_cpp_properties.json** VSCode 中按 `Ctrl+Shift+P` → 输入 `C/C++: Edit Configurations (JSON)`: ```json { "configurations": [{ "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/usr/include/opencv4" // 关键路径 ], "compilerPath": "/usr/bin/g++" }] } ``` [^5] --- #### 四、图形显示问题解决 远程执行程序时需配置 X11 转发: 1. **本地计算机** - Windows:安装 [VcXsrv](https://sourceforge.net/projects/vcxsrv/) - Mac/Linux:内置支持(确保 XQuartz 运行) 2. **服务器端** 在 `~/.bashrc` 添加: ```bash export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0 ``` 测试显示功能: ```cpp // main.cpp #include <opencv2/opencv.hpp> int main() { cv::imshow("Remote Display", cv::Mat::ones(300,300,CV_8UC3)); cv::waitKey(0); return 0; } ``` [^4] --- #### 五、验证流程 1. 编译运行: ```bash mkdir build && cd build cmake .. && make ./main ``` 2. 预期结果: - ✅ 本地显示图像窗口 - ✅ 无 `qt.qpa.xcb` 等显示错误 - ✅ VSCode 智能提示 OpenCV 函数 > **注意**:防火墙需放行 SSH 的 X11 转发端口(默认 6000-6007)[^3] ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值