.. _a-shell_webassembly: ========================== a-shell环境WebAssembly ========================== 由于苹果公司的安全策略,系统会拒绝app之外的可执行代码。这样理论上我们不能在iOS/iPadOS上使用编译器生成执行程序进行运行和测试。为了在 ``a-shell`` 中开发C/C++, ``a-shell`` 使用了 :ref:`webassembly` 对象代码,而不是常规的原生二进制文件。在 :ref:`webassembly` 运行时环境(runtime environment),就能够测试编写的代码。 在 ``a-shell`` 环境中,可以编译 C/C++ 程序。默认,clang会生成 :ref:`webassembly` 程序,可以通过 ``wasm a.out`` 来运行。 安装llvm =========== ``a-shell`` 环境需要安装 ``llvm`` 否则提示错误:: In order to use clang, you need to install or update the C SDK with 'pkg install llvm-18' 但是,我尝试安装 .. literalinclude:: a-shell_webassembly/install_llvm :caption: 安装 ``llvm`` 以使用clang 提示报错: .. literalinclude:: a-shell_webassembly/install_llvm_err :caption: 安装 ``llvm`` 报错 这个报错是因为没有正确设置 ``$PKG_SERVER`` 环境变量,导致无法找到软件包仓库导致的,请执行以下命令(持久化则添加到 ``~/Documents/.profile`` ): .. literalinclude:: a-shell_commands/profile :caption: 添加环境变量 ``$PKG_SERVER`` 参考 ========= - `Clang etc ... can or how any program be run #7 `_