Привязка Crystal C, простой пример Привет, мир.
Я пытаюсь понять, как работают c привязки в кристалле. Для начала мне интересно, как бы я включил простую функцию hello world c в crystal. Всегда хорошо начать с основ, не так ли? Вот функция, которую я хотел бы включить:
#include <stdio.h>
void hello(const char * name){
printf("Hello %s!\n", name);
}
1 ответ
Решение
Это заняло у меня немного времени, чтобы понять это. Сначала вам нужно скомпилировать ваш файл 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, и оно будет работать.crystal build hello.cr