Как один интерфейс программы Go с библиотекой C?
Я просматривал исходный код Go, но я до сих пор не понял этого. Если кто-то уже сделал это, не могли бы вы поделиться им?
ОБНОВЛЕНО: Благодаря @fserb я отправляю некоторую документацию из источников Go:
Cgo позволяет создавать Go пакеты, которые вызывают код C.
Использование: cgo [параметры компилятора] file.go
Параметры компилятора передаются через неинтерпретируемый при вызове gcc для компиляции частей C пакет.
Входной файл .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 автоматизирует процесс использования ОЦП. См. Раздел $GOROOT/misc/cgo/stdio и $GOROOT/misc/cgo/gmp для примеров.
Cgo еще не работает с gccgo.