# 3.1 catkin程序包由什么组成?

一个功能包要想称为catkin功能包必须符合以下要求：

1. 该功能包必须包含catkin 版本的 `package.xml`文件，这个`package.xml`文件提供有关功能包的元信息。
2. 功能包必须包含一个catkin 版本的`CMakeLists.txt`文件，而Catkin metapackages中必须包含一个对`CMakeList.txt`文件的引用。
3. 每个目录下只能有一个功能包。这意味着**在同一个目录下不能有嵌套的或者多个功能包存在**。

最简单的功能包也许看起来就像这样：

```
my_package/
  CMakeLists.txt
  package.xml
```
