7

我试图弄清楚水晶中的c绑定是如何工作的。对于初学者,我想知道如何将一个简单的 hello world c 函数包含到水晶中。从基础开始总是好的,对吗?这是我想包括的功能:

#include <stdio.h>

void hello(const char * name){
  printf("Hello %s!\n", name);
}
4

1 回答 1

15

这也让我有点想明白。首先,您必须将 C 文件编译成一个对象。在 gcc 中,您将运行gcc -c hello.c -o hello.o.

然后在水晶文件中,您需要链接到 C 对象。这是一个例子:

#hello.cr
@[Link(ldflags: "#{__DIR__}/hello.o")]

lib Say 
  fun hello(name : LibC::Char*) : Void
end

Say.hello("your name")

现在你只需要编译你的水晶应用程序就可以了。 crystal build hello.cr

于 2017-03-13T21:44:45.080 回答