Skip to content

Commit 11a897f

Browse files
rename folder to examples and add libc from README.md (ebitengine#105)
1 parent 086b819 commit 11a897f

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

examples/libc/main.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
// SPDX-FileCopyrightText: 2022 The Ebitengine Authors
3+
4+
//go:build darwin || linux
5+
6+
package main
7+
8+
import (
9+
"fmt"
10+
"runtime"
11+
12+
"github.com/ebitengine/purego"
13+
)
14+
15+
func getSystemLibrary() string {
16+
switch runtime.GOOS {
17+
case "darwin":
18+
return "/usr/lib/libSystem.B.dylib"
19+
case "linux":
20+
return "libc.so.6"
21+
default:
22+
panic(fmt.Errorf("GOOS=%s is not supported", runtime.GOOS))
23+
}
24+
}
25+
26+
func main() {
27+
libc := purego.Dlopen(getSystemLibrary(), purego.RTLD_NOW|purego.RTLD_GLOBAL)
28+
if err := purego.Dlerror(); err != "" {
29+
panic(err)
30+
}
31+
var puts func(string)
32+
purego.RegisterLibFunc(&puts, libc, "puts")
33+
puts("Calling C from Go without Cgo!")
34+
}
File renamed without changes.

0 commit comments

Comments
 (0)