我在Racket中有一个GUI应用程序,在DrRacket中运行良好。现在我想创建一个独立的可执行文件进行分发。在此阶段是否需要采取任何预防措施以确保创建安全可执行文件以供使用?
答案 0 :(得分:4)
一般情况下,不,您不必担心与分发工具合作。对于大多数代码,Racket可以静态地确定需要包含在分发包中的内容,因此您不必手动执行任何操作。但是,此规则的一个常见例外是 assets 或其他非模块依赖项,例如在运行时加载的图像。
要确保资产包含在分发中,请使用racket/runtime-path
库以与分发打包工具协作的方式绑定路径。这有助于确保您的资产路径独立于工作目录,因此相对路径将始终可以预测解决。
此外,动态使用dynamic-require
等内容所需的模块显然无法静态确定,因此请使用define-runtime-module-path
表单标记应包含在分发中的模块。但是,大多数时候你不必担心这个问题,因为像lazy-require
这样的表格会自动按照define-runtime-module-path
推荐。