如何使用本机客户端工具链?

时间:2012-12-24 07:23:26

标签: google-nativeclient

我在自己的Linux操作系统中编译了本机客户端工具链。

在本机客户端源代码中,我发现使用make test_hello_world_nexe可以构建一个hello world程序并运行它。根据我的理解,它必须使用下载的工具链而不是您自己的工具链进行编译,因为它不需要提供工具链的位置。

那么如何使用我自己编译的工具链来构建我自己的应用程序到.nexe?

1 个答案:

答案 0 :(得分:0)

终于想出了如何使用工具链。以下是来自Building Native Client Modules的Windows上的示例,如果您使用的是NaCl SDK:

<NACL_SDK_ROOT>/toolchain/win_x86_newlib/bin/i686-nacl-gcc hello_world.c -o hello_world_x86_32.nexe -m32 -g -O0 -lppapi

<NACL_SDK_ROOT>表示您正在使用的软件包的顶级目录的路径,例如<location-where-you-installed-the-SDK>/pepper_23

如果您不使用NaCl SDK,则可能需要手动编译和链接ppapi lib。在Native Client源代码中,有一个工具可以帮助自动执行以上所有操作:

python native_client/build/build_nexe.py -t "/path/to/toolchain/" --arch x86-32 --build newlib_nexe --root .. --name "hello.nexe" --objdir . "--compile_flags=-m32 -mtls-use-call <more-flags...>" "--link_flags=-m32 -O3 " "--source-list=hello.list"

通过这个你可以得到一个hello.nexe编译。然后可以使用另一个工具来检查其输出:

python native_client/run.py -m32 hello.nexe

请注意,如果您使用Glibc动态链接程序,则可能需要提供库路径,例如

python native_client/run.py -L/path/to/lib/ -m32 hello.nexe