main.go
package main
// #cgo CFLAGS: -x objective-c
// #cgo LDFLAGS: -framework Cocoa
// #import <Cocoa/Cocoa.h>
//
// void SayHello() {
// NSLog(@"Hello, World!");
// }
//
import "C"
func main() {
C.SayHello()
}
これだとビルド時ににリンクエラーになるんだよなあ…。 go run -x ... で調べた所、最後の 6l まで行っており、 6l が -framework を解さないのが原因ではないかと考えられる。
追記: できた: https://github.com/hajimehoshi/cocoa_in_go 。原理は、 Objective-C の部分だけ独立した dynamic library にして、 Go から (C の) 関数を呼んでいるだけである。