我想为以下代码制作一个可执行文件。 这是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)
答案 0 :(得分:5)
正如@dyoo指出的那样,在Racket中,您可以从菜单中创建一个可执行文件,并(根据所选/可用选项)打包所需的库;阅读instructions。您还可以使用命令行tools为其他平台创建可执行文件。
对于更通用和可移植的解决方案,请考虑首先将代码编译为C,然后从C编译为本机可执行文件;查看raco工具(第9.3节),或查看为轻松编译为C而设计的Scheme实现,例如Chicken Scheme或Gambit Scheme。
让代码在iOS下运行可能会比较棘手,快速搜索为iOS返回Gambit REPL,尝试一下,但我认为不支持编译本机Objective-C代码,尽管Gambit claims要获得“对C ++和Objective-C编译器的完全集成支持”,你必须对它进行一些实验。
最后,请注意特定于Racket的GUI代码(如问题中的那个)几乎肯定会在不同的Scheme实现/平台上不可移植......