Crystal C 绑定,简单的 hello world 示例。
Crystal C binding, simple hello world example.
我想弄清楚 crystal 中的 c 绑定是如何工作的。对于初学者,我想知道如何将一个简单的 hello world c 函数包含到 crystal 中。从基础开始总是好的,对吗?这是我想要包括的功能:
#include <stdio.h>
void hello(const char * name){
printf("Hello %s!\n", name);
}
我也花了一点时间才弄明白。首先,您必须将 C 文件编译成一个对象。在 gcc 中你会 运行 gcc -c hello.c -o hello.o
.
然后在 crystal 文件中,您需要 link 到 C 对象。这是一个例子:
#hello.cr
@[Link(ldflags: "#{__DIR__}/hello.o")]
lib Say
fun hello(name : LibC::Char*) : Void
end
Say.hello("your name")
现在您只需编译您的 crystal 应用程序,它就会运行。
crystal build hello.cr
我想弄清楚 crystal 中的 c 绑定是如何工作的。对于初学者,我想知道如何将一个简单的 hello world c 函数包含到 crystal 中。从基础开始总是好的,对吗?这是我想要包括的功能:
#include <stdio.h>
void hello(const char * name){
printf("Hello %s!\n", name);
}
我也花了一点时间才弄明白。首先,您必须将 C 文件编译成一个对象。在 gcc 中你会 运行 gcc -c hello.c -o hello.o
.
然后在 crystal 文件中,您需要 link 到 C 对象。这是一个例子:
#hello.cr
@[Link(ldflags: "#{__DIR__}/hello.o")]
lib Say
fun hello(name : LibC::Char*) : Void
end
Say.hello("your name")
现在您只需编译您的 crystal 应用程序,它就会运行。
crystal build hello.cr