5

我想为以下代码制作一个可执行文件。这是用 Dr.racket 编写的方案。这将如何完成?如果它可以是独立的,并且我可以在 iOS 和 Windows 上打开它,那将是最好的。非常感谢您的宝贵时间!

#lang racket

(require racket/gui/base)
(require compiler/embed)


; Make a frame by instantiating the frame% class
(define frame (new frame% [label "GUI"]
                   [width 200]
                   [height 200]))


; Make a static text message in the frame
(define msg (new message% [parent frame]
                          [label "This box is empty"]))


; Show the frame by calling its show method
(send frame show #t)
4

1 回答 1

6

正如@dyoo 所指出的,在 Racket 中,您可以从菜单创建可执行文件并(取决于所选/可用选项)打包所需的库;阅读说明。您还可以使用命令行工具为其他平台创建可执行文件。

对于更通用和可移植的解决方案,请考虑先将代码编译为 C,然后再从 C 编译为本机可执行文件;查看raco工具(第 9.3 节),或查看旨在轻松编译为 C 的 Scheme 实现,例如Chicken SchemeGambit Scheme

让代码在 iOS 下运行可能会比较棘手,快速搜索会返回一个适用于 iOS 的Gambit REPL,试一试,但我认为不支持编译为本机 Objective-C 代码,尽管 Gambit声称具有“完全集成对 C++ 和 Objective-C 编译器的支持”,你必须尝试一下。

最后,请注意特定于 Racket 的 GUI 代码(如问题中的那个)几乎肯定不能跨不同的 Scheme 实现/平台移植......

于 2013-01-17T13:49:21.057 回答