来自Racket的独立可执行文件的注意事项

时间:2016-08-19 03:56:27

标签: scheme racket

我在Racket中有一个GUI应用程序,在DrRacket中运行良好。现在我想创建一个独立的可执行文件进行分发。在此阶段是否需要采取任何预防措施以确保创建安全可执行文件以供使用?

1 个答案:

答案 0 :(得分:4)

一般情况下,不,您不必担心与分发工具合作。对于大多数代码,Racket可以静态地确定需要包含在分发包中的内容,因此您不必手动执行任何操作。但是,此规则的一个常见例外是 assets 或其他非模块依赖项,例如在运行时加载的图像。

要确保资产包含在分发中,请使用racket/runtime-path库以与分发打包工具协作的方式绑定路径。这有助于确保您的资产路径独立于工作目录,因此相对路径将始终可以预测解决。

此外,动态使用dynamic-require等内容所需的模块显然无法静态确定,因此请使用define-runtime-module-path表单标记应包含在分发中的模块。但是,大多数时候你不必担心这个问题,因为像lazy-require这样的表格会自动按照define-runtime-module-path推荐。