Red语言编译主程序时如何链接其他脚本

问题描述

我将一些函数的定义放在一个名为“funcs.red”的文件中,其中的函数将被主程序调用。这是“funcs.red”的例子:

Red []
myadd: func [x y] [x + y]

主程序("main.red")的内容为:

Red [needs: view]
do %funcs.red
view [t: text "result" button "myadd" [t/text: to-string myadd 1 2]]

“main.red”和“funcs.red”都在同一路径中。 在红色控制台中,“main.red”按 do %funcs.red do %main.red 的预期正常工作。然后我尝试编译“main.red”: red -r -t windows main.red 但它失败了并给出了错误消息:

Compilation Error: undefined word myadd...

那么,在 Red 中,如何在编译时将主脚本与另一个脚本链接

解决方法

要在编译时引用其他红色源,您应该使用 #include。当您使用 do 时,它会查找该文件,并在运行时读取并解释它。

#include %funcs.red

您仍然可以在解释脚本时使用 #include。在这种情况下,解释器会将其视为 do