¿Cómo se puede interconectar un programa Go con una biblioteca C?Interfaz Go with C libraries
He estado navegando por el código fuente de Go, pero todavía no me di cuenta. Si alguien ya lo ha hecho, ¿podría compartirlo, por favor?
ACTUALIZADO: Gracias a @fserb, estoy publicando alguna documentación de las fuentes Go:
Cgo permite la creación de Go paquetes que requieren el código C.
Uso: CGO [opciones del compilador] file.go
El compilador se pasan opciones través sin interpretar cuando se invoca gcc para compilar las partes C del paquete .
El file.go de entrada es una archivo fuente Go válido sintácticamente que importa la pseudo-paquete de "C" y, a continuación se refiere a tipos, tales como C.size_t, variables tales como C.stdout, o funciones tales como C.putchar.
Si la importación de "C" es inmediatamente precedida de un comentario, ese comentario es utilizado como un encabezado al compilar los C partes del paquete. Por ejemplo:
// #include <stdio.h> // #include <errno.h> import "C"
Cgo transforma el archivo de entrada en cuatro archivos de salida: dos de origen archivos Go, un archivo de C para 6c (o 8c o 5c), y un archivo de C para gcc.
Las reglas paquete makefile estándar en Make.pkg automatizar el proceso de usar CGO. Consulte $ GOROOT/misc/cgo/stdio y $ GOROOT/misc/cgo/gmp para ver ejemplos.
Cgo aún no funciona con gccgo.
Interesante ... Estudiaré de inmediato. ¡Gracias! – jldupont