关于Catkin工作空间的两种方式
传统catkin目录结构方式
my_workspace/
├── build/
├── devel/
├── src/
├── CMakeLists.txt
└── package.xml
此时当你有多个项目时,在该目录下执行catkin_make 后所有的项目都将会被编译。
那么如何对一个包单独编译?
catkin_make --pkg <package_name>
通过catkin_make 来指定包名或许是一个选择
或者是使用catkin build 来进行编译也可以
catkin build <package_name>
另外一种组织方式:创建多个工作空间
创建独立的工作空间 在不同的目录下,分别创建新的工作空间:
mkdir -p ~/workspace_project1/src
cd ~/workspace_project1
catkin_make
然后,为其他项目创建新的工作空间:
mkdir -p ~/workspace_project2/src
cd ~/workspace_project2
catkin_make
在工作空间中添加包 在每个 src/ 目录下,添加你需要的 ROS 包。例如:
cd ~/workspace_project1/src
git clone https://github.com/someone/ros_package.git
同样在其他工作空间中添加相应的包。
编译和设置环境 对每个工作空间,你都可以分别运行 catkin_make 或 catkin build 来编译工作空间内的所有包。例如:
cd ~/workspace_project1
catkin_make
如果你使用了 catkin_tools,可以使用 catkin build:
cd ~/workspace_project1
catkin build
使用不同的工作空间环境 每个工作空间都有自己的 devel 和 build 目录,因此可以为每个工作空间设置独立的环境变量。在工作空间中,使用 source 命令来配置环境:
source ~/workspace_project1/devel/setup.bash
如果你同时在多个工作空间工作,可以为每个工作空间分别设置不同的环境。例如,你可以在 .bashrc 文件中设置不同的环境变量,或者手动在终端中切换。
这种方法可以更好的将工作空间中的项目进行隔离,从而避免出现一些环境问题。