目的:

在虚拟机上调试代码所需要的时间太久了,所以可以通过内网连接到实验室的服务器,在服务器上运行代码可以提高调试的效率,本方案利用mobaxterm完成服务器端所需要的环境配置(项目必要的库文件的安装),再利用vscode中的remote ssh插件在自己的电脑上完成项目代码修改调试。

开发环境准备

        a、安装mobaxterm并连接到服务器

MobaXterm(终端工具)下载&安装&使用教程-CSDN博客

        b、安装vscode+remote ssh

步骤记录:

1、安装gtsam库文件到服务器:

1.1下载后压缩,点击这里上传到服务器

1.2编译安装(注意线程数的选择):

mkdir ~/downloads
unzip gtsam-4.0.2.zip
cd ~/downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8

报错:

lhl@eelab-System-Product-Name:~/downloads/gtsam-4.0.2/build$ cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
-- GTSAM_SOURCE_ROOT_DIR: [/home/lhl/downloads/gtsam-4.0.2]
-- GTSAM_BOOST_LIBRARIES: optimized;/usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.71.0;optimized;/usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0;optimized;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0;optimized;/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0;optimized;/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0;optimized;/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0;debug;debug;debug;debug;debug;debug
-- Could NOT find MKL (missing: MKL_INCLUDE_DIR MKL_LIBRARIES)
-- Found Eigen version: 3.3.7
CMake Error at wrap/CMakeLists.txt:32 (target_link_libraries):
  The "debug" argument must be followed by a library.


-- Configuring incomplete, errors occurred!
See also "/home/lhl/downloads/gtsam-4.0.2/build/CMakeFiles/CMakeOutput.log".
See also "/home/lhl/downloads/gtsam-4.0.2/build/CMakeFiles/CMakeError.log".

kimi分析可能是缺少了mkl库(已排除这个原因)

可能是CMakelist文件配置问题(已经解决)

解决方案:Ubuntu 中 gtsam 安装问题:CMake Error at wrap/CMakeLists.txt:32 (target_link_libraries): The “debug“ ..._the "debug" argument must be followed by a library-CSDN博客

2、LIO-SAM源码上传到服务器的catkin_lio_ws/src下编译

报错:

make[2]: *** [CMakeFiles/lio_sam_imuPreintegration.dir/build.make:63:CMakeFiles/lio_sam_imuPreintegration.dir/src/imuPreintegration.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:549:CMakeFiles/lio_sam_imuPreintegration.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j8 -l8" failed
error: #error PCL requires C++14 or above
    7 |   #error PCL requires C++14 or above
      |    ^~~~~

这个错误表明你正在尝试编译的项目需要 C++14 或更高版本的支持,但是当前的编译器设置可能不支持 C++14。PCL(Point Cloud Library)是一个流行的开源库,用于处理三维点云数据,它要求使用支持 C++14 特性的编译器。

解决方法:清空代码重新下载创建工作空间后用catkin_make -DCMAKE_CXX_STANDARD=14命令来编译

lhl@eelab-System-Product-Name:~/catkin_lio_ws/src$ cd ..
lhl@eelab-System-Product-Name:~/catkin_lio_ws$ catkin_make -DCMAKE_CXX_STANDARD=14

成功:

3、运行lio-sam

source devel/setup.bash
roslaunch lio_sam run.launch

【毕业设计】LIO-SAM算法部署到ubuntu系统的步骤及问题记录-CSDN博客

根据这篇博客解决运行lio-sam出现的错误

成功:

4、通过VScode 安装remote ssh完成对服务器上代码的编辑

4.1 打开vscode扩展栏搜索remote ssh安装:

4.2:完成服务器ssh连接

参考这位博主@XiaoJ1234567的博客,写的很详细。

VSCode:Remote-SSH插件安装使用 -- 在VSCode中使用SSH_vscode ssh remote-CSDN博客

4.3即可在vscode上编辑服务器端的代码:

左边是vscode可以编辑的代码目录,可以看到与右端mobaxterm显示的服务器端代码目录相对应,表明已经完成远程代码编辑环境的部署。

5、后续将继续更新利用vncviewer实现远程桌面可视化

问题记录:

1、建立连接失败:

原因分析:ubuntu系统没有配置解压软件

你当前的情况说明:

  • ~/.vscode-server/bin/ 目录不存在,说明 VS Code Server 其实没有成功安装完成或者安装后被删除了。

  • 这也解释了为什么手动执行 server.sh 找不到文件。


1. 确认系统时间是否已正确同步

执行:

date

确保时间正确,建议先运行:

timedatectl set-ntp true

如果系统时间差距大,VS Code Server 安装会失败。


2. 清理旧残留(防止缓存干扰)

rm -rf ~/.vscode-server

3. 确认远程系统安装依赖

apt update
apt install -y tar gzip curl bash

4. 确保用户的家目录磁盘空间充足

df -h ~

5. 从本地 VS Code 再次连接,触发重新安装


6. 如果依旧失败,查看远程 SSH 的权限限制

确认 /root/.vscode-server/ 路径权限没问题:

ls -ld ~/.vscode-server

以及磁盘是否只读。


7. 尝试用非 root 用户连接测试

root 账号有时候环境变量复杂,建议新建普通用户试试:

adduser vscodeuser
usermod -aG sudo vscodeuser

然后用该用户连接 VS Code Remote SSH。


如果你需要,我可以帮你写一个脚本自动做时间校正、依赖安装和日志抓取,帮助排查。你看要不要?

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐