前言
我的WSL2是ubuntu 18.04,安装好了ROS,WSL2里虽然可以直接安装CLion,也有图形化界面,但是由于没有中文输入法,以及windows创建的文件在WLS2里是root创建的,默认也没有写入权限,在WSL2的CLion里去写代码非常的麻烦,所以还是想在Windows下写代码,在WSL2里运行
创建catkin_ws项目结构
在WSL2下命令行创建
# 创建目录
mkdir -p ~/catkin_ws/src
# 初始化空间
cd ~/catkin_ws/src
catkin_init_workspace
# 编译空间
cd ~/catkin_ws
catkin_make
# 配置环境变量,可以将这句话写入~/.bashrc内
source ~/catkin_ws/devel/setup.bash
# 创建项目
cd ~/catkin_ws/src
# 我这里创建了dynamic_map项目,依赖了roscpp&std_msgs
catkin_create_pkg dynamic_map roscpp std_msgs
Windows下配置CLion
打开项目下的CMakeLists.txt,如:
~/catkin_ws/src/dynamic_map/CMakeLists.txt
,而非src下的,~/catkin_ws/src/CMakeLists.txt
是一个软链接,windows下无法查看,当然也可以直接copy过来,不过也没啥必要,只要打开项目下的CMakeLists.txt就行了-
配置wsl的工具链
配置CMake环境
Toolchain选择WSL
-
CMake options:
-DCATKIN_DEVEL_PREFIX=/mnt/e/catkin_ws/devel -DCMAKE_PREFIX_PATH=/mnt/e/catkin_ws/devel -DCMAKE_PREFIX_PATH=/opt/ros/melodic -DPYTHON_EXECUTABLE=/usr/bin/python
/opt/ros/melodic为你安装ros的目录
/mnt/e/catkin_ws/为你当前项目的catkin目录
/usr/bin/python为你catkin使用的python版本
这些环境变量都可以通过catkin_make来获取,可以对比下cmake和catkin_make哪个环境变量不对就添加哪个
-
Build directory:
../build
配置完后可以重新cmake了,理论不会报错了
- 配置运行环境
- 创建一个CMake Application
- Target和Executable选择你的可执行Target
- Environment variables增加LD_LIBRARY_PATH,可以在WSL2命令行里查看
echo $LD_LIBRARY_PATH
我的系统是:LD_LIBRARY_PATH=/mnt/e/catkin_ws/devel/lib:/opt/ros/melodic/lib:/usr/local/cuda/lib64
-
开心享受windows上开发ros吧