Привязка 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

Другие вопросы по тегам