0

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

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

那么如何使用自己编译的工具链,将自己的应用程序构建成.nexe呢?

4

1 回答 1

0

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

<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
于 2013-01-06T02:49:47.740 回答