Подтвердить что ты не робот

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

Как один интерфейс программы 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.

4b9b3361

Ответ 1

Отметьте cgo. Кроме того, посмотрите на misc/cgo/gmp в исходном коде Go для примера кода о том, как обернуть библиотеку C в Go.