我在自己的 Linux 操作系统中编译了本机客户端工具链。
在本机客户端源代码中,我发现使用make test_hello_world_nexe
可以构建一个 hello world 程序并运行它。据我了解,它必须使用下载的工具链而不是您自己的工具链来编译,因为它不需要提供工具链的位置。
那么如何使用自己编译的工具链,将自己的应用程序构建成.nexe呢?
我在自己的 Linux 操作系统中编译了本机客户端工具链。
在本机客户端源代码中,我发现使用make test_hello_world_nexe
可以构建一个 hello world 程序并运行它。据我了解,它必须使用下载的工具链而不是您自己的工具链来编译,因为它不需要提供工具链的位置。
那么如何使用自己编译的工具链,将自己的应用程序构建成.nexe呢?
终于想通了如何使用工具链。如果您使用的是 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