[#] [Перевод] Вызов функций Go из других языков
habrabot(difrex,1) — All
2017-03-21 13:30:05


![image][1]



С версии 1.5 компилятор Go поддерживает несколько режимов сборки, определяемых флагом `buildmode`. Их ещё называют режимами исполнения Go (_[Go Execution Modes][2]_). С их помощью `go tool` может компилировать пакеты Go в нескольких форматах, включая архивы и библиотеки общего пользования Go (shared libraries), архивы и библиотеки общего пользования Си, а с версии 1.8 — и динамические плагины Go.



В статье мы рассмотрим компилирование пакетов Go в библиотеки Си. В этом режиме сборки компилятор генерирует стандартный бинарный файл объекта (shared object) (.so), передавая функции Go в качестве API в стиле Си. Мы поговорим о том, как создавать библиотеки Go, которые можно вызывать из C, Python, Ruby, Node и Java.



Весь код доступен на [GitHub][3].

[Читать дальше →][4]

[1]: https://habrastorage.org/files/0f0/8fd/c54/0f08fdc54eeb4a0daf06f709a8d028ae.jpg
[2]: https://docs.google.com/document/d/1nr-TQHw_er6GOQRsF6T43GGhFDelrAP0NqSS_00RgZQ/edit
[3]: https://github.com/vladimirvivien/go-cshared-examples
[4]: https://habrahabr.ru/post/324250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut