Интерфейс Go с библиотеками C

Как связать программу Go с библиотекой C?

Я просматривал исходный код Go, но до сих пор не понял. Если кто-то уже сделал это, не могли бы вы поделиться, пожалуйста?

ОБНОВЛЕНО: Благодаря @fserb я публикую некоторую документацию из источников Go:

Cgo позволяет создавать пакеты Go, которые вызывают C-код.

Использование: cgo [опции компилятора] file.go

Параметры компилятора пропускаются через uninterpreted при вызове gcc для компиляции частей C пакета.

Входной файл file.go является синтаксически допустимым исходным файлом Go, который импортирует псевдопакет «C», а затем ссылается на типы, такие как C.size_t, переменные, такие как C.stdout, или функции, такие как C.putchar.

Если импорту «C» сразу предшествует комментарий, этот комментарий используется в качестве заголовка при компиляции C-частей пакета. Например:

// #include <stdio.h>
// #include <errno.h>
import "C"

Cgo преобразует входной файл в четыре выходных файла: два исходных файла Go, файл C для 6c (или 8c или 5c) и файл C для gcc.

Стандартные правила makefile пакета в Make.pkg автоматизируют процесс использования cgo. Смотрите примеры в $ GOROOT / misc / cgo / stdio и $ GOROOT / misc / cgo / gmp.

Cgo еще не работает с gccgo.

Ответы на вопрос(1)

Ваш ответ на вопрос