File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change
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.
You can’t perform that action at this time.
0 commit comments