Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Это должно содержать main.
That is, we must disable linker garbage collection of variables when -buildmode=c-archive, shared, c-shared, or plugin. We must also disable linker garbage collection of variables when the plugin package is imported
typedef struct { char *p; GoInt n; } GoString;
extern void echo(GoString p0);
module Go
class String < FFI::Struct
layout :p, :pointer,
:n, :int
end
attach_function :echo, [Go::String.by_value], :void
# ... и потом где-то
def self.do_echo(text)
btext = text.force_encoding 'binary'
str = Go::String.new
str[:p] = FFI::MemoryPointer.from_string(btext)
str[:n] = btext.size
self.echo str
end
end
Подключения Go shared library к Ruby