使用CMake进行编译或交叉编译
使用CMake进行编译
按照以下步骤编译NAOqi SDK范例。
- 确认NAOqi可执行档和模块包没有运行。
- 运行CMake界面。
- 在 字段,选择NAOqi SDK的范例目录(例如:"/path/to/aldebaran-sdk/modules/src/helloworld")。
- 在 字段,选择一个临时构建目录。如果没有,就创建一个(例如:"/path/to/aldebaran-sdk/modules/modules/src/examples/helloworld/build")。
- 点击 按钮。选择要使用的集成开发环境(IDE)。Windows系统选择"Visual Studio 8 2005"或"Visual Studio 9 2008";Linux和Mac系统选择"UNIX Makefiles"。
- 选择"Specify toolchain file for cross-compiling",然后输入"/path/to/aldebaran-sdk/toolchain-pc.cmake"。
注释: 即使您不进行交叉编译,也必须规定一个工具链文件。
- 如果某些配置字段为红色,请再次点击 按钮。所有字段都应该为灰色。
- 点击OK。
- Windows系统下,在您的构建目录里会生成一个可打开的.sln文件。
- 编译范例项目。在Linux或Mac里,只需"cd"到构建目录,并键入"make"。
注释: |
您可以随时重置项目。操作时,删除构建目录的内容并重新启动CMake。 请勿编辑Visual Studio Project,因为它是实时生成的(详情请参见Cmake的程序说明书)。可以通过编辑Cmake文件来进行配置。 |
---|
如果您的Linux里没有cmake-gui,您可以使用以下命令来配置Cmake:
$~ cd /path/to/sources $~ mkdir build $~ cd build $~ cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/aldebaran-sdk/toolchain.cmake .. $~ ccmake . # Optional, useful to change cmake's options $~ make
使用CMake进行交叉编译
为了在NAO上运行您的代码,需要进行交叉编译。目前,只有在Linux里才能进行交叉编译。使用这一编译的目的是为了保证编译时使用正确的优化标志,以及使用正确的库版本进行链接。
注意: |
现在,您无法再写入“/opt/naoqi/”,而是应该把个人数据放入“/home/nao”。 |
---|
- 从Aldebaran网站下载并解压Aldebaran最新的交叉工具链(cross-toolchain),并保存在“/path/to/ctc/”里。交叉工具链包含编译NAOqi模块所需的所有工具,以及其它与机器人有关的库和二进制。
- 存档文件的根文件夹里有一个“toolchain-geode.cmake”可供使用。它将被传递至Cmake,而不是“toolchain-pc.cmake”。这是交叉编译和编译的唯一区别。
- 在一个交叉构建目录里配置Cmake(例如“buildcross”,而不是“build”),并把“toolchain-geode.cmake”文件规定为工具链文件。
- 以下步骤与编译相同。
- 举例:
$~ cd /path/to/sources $~ mkdir buildcross $~ cd buildcross $~ cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/ctc/toolchain-geode.cmake .. $~ make
调试
- 在Linux下,您需要配置CMake(使用ccmake或cmake-gui),并把CMAKE_BUILD_TYPE变量设定为"DEBUG"
-
在Windows下,您只需选择"debug"作为构建配置。
注意: 一般不支持"MinSizeRel"和"RelWithDebugInfo"配置。