Skip to main content

Getting started with golang's cgo

·1 min
/*
#cgo LDFLAGS: -framework CoreFoundation

#include <CoreFoundation/CoreFoundation.h>
*/

Cgo recognizes the above comments. Lines starting with #cgo are removed and passed to the compiler.

What remains (aka the preamble) is used as a header when compiling C parts of the package. import "C" must immediately follow the preamble.

When using //exports, which exports a go function to C, the C code in the comment (preamble) can include only declarations not definitions. Except you can use static inline as a workaround for simple functions.