gpt4 book ai didi

racket - 如何在 Racket 中创建动态链接的可执行文件?

转载 作者:行者123 更新时间:2023-12-04 14:04:13 25 4
gpt4 key购买 nike

我正在尝试在 Racket 中创建一个动态链接的可执行文件。目前我的 hello world 程序编译为 4MB 可执行文件。这里是:

#!/usr/bin/env racket  
#lang racket

(define (extract str)
(substring str 4 7))

(print (extract "the cat out of the bag"))

我编译它使用

raco exe first.rkt

生成的可执行文件为 4+ MB。所以,很明显,它是静态链 catch 拍库。

- 编辑 - -

这是启动器代码:
#lang racket

(require launcher/launcher)
(require racket/runtime-path)

(define-runtime-path prog-path "first.rkt")

(make-racket-launcher (list (path->string prog-path))
"first"
'())

它只需要放入一个单独的文件并执行
 racket <launch-file>.rkt

最佳答案

raco exe 的输出旨在静态包含其所需的模块,因此它可能不是您想要的。你看过launcher图书馆?它将生成一个 exe,其中只包含在本地安装上启动程序的绝对最低要求。

或者,选择较小的语言,例如 #lang racket/base ,它应该产生更小的可执行文件,因为它没有链接到尽可能多的模块。

最后,如果您在基于 Unix 的系统上,如果设置了可执行位 (x),则该程序应该已经作为可执行文件,因为您已经添加了 #!/usr/bin/env。 Racket 线在顶部。这假设您的 Racket 在 PATH 中。见 http://docs.racket-lang.org/guide/scripts.html

关于racket - 如何在 Racket 中创建动态链接的可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com