使用CMake进行编译或交叉编译

使用CMake进行编译

按照以下步骤编译NAOqi SDK范例。

  1. 确认NAOqi可执行档和模块包没有运行。
  2. 运行CMake界面。
  3. "Where is the code source"字段,选择NAOqi SDK的范例目录(例如:"/path/to/aldebaran-sdk/modules/src/helloworld")。
  4. "Where to build the binaries"字段,选择一个临时构建目录。如果没有,就创建一个(例如:"/path/to/aldebaran-sdk/modules/modules/src/examples/helloworld/build")。
  5. 点击"configure"按钮。选择要使用的集成开发环境(IDE)。Windows系统选择"Visual Studio 8 2005"或"Visual Studio 9 2008";Linux和Mac系统选择"UNIX Makefiles"。
  6. 选择"Specify toolchain file for cross-compiling",然后输入"/path/to/aldebaran-sdk/toolchain-pc.cmake"。
    注释:

    即使您不进行交叉编译,也必须规定一个工具链文件。

  7. 如果某些配置字段为红色,请再次点击"configure"按钮。所有字段都应该为灰色。
  8. 点击OK。
  9. Windows系统下,在您的构建目录里会生成一个可打开的.sln文件。
  10. 编译范例项目。在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”。

  1. Aldebaran网站下载并解压Aldebaran最新的交叉工具链(cross-toolchain),并保存在“/path/to/ctc/”里。交叉工具链包含编译NAOqi模块所需的所有工具,以及其它与机器人有关的库和二进制。
  2. 存档文件的根文件夹里有一个“toolchain-geode.cmake”可供使用。它将被传递至Cmake,而不是“toolchain-pc.cmake”。这是交叉编译和编译的唯一区别。
  3. 在一个交叉构建目录里配置Cmake(例如“buildcross”,而不是“build”),并把“toolchain-geode.cmake”文件规定为工具链文件。
  4. 以下步骤与编译相同。
  5. 举例:

    $~ 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"配置。





Copyright © 2010 Aldebaran-Robotics - 版权所有