gpt4 book ai didi

go - 从 Go 调用 so 文件中的函数

转载 作者:IT王子 更新时间:2023-10-29 01:18:19 24 4
gpt4 key购买 nike

是否可以从 Go 调用静态对象 (.so) 文件?我一直在搜索谷歌,我一直在寻找我能做到的说法

lib, _ := syscall.LoadLibrary("...")

但是尝试这个会报错

undefined: syscall.LoadLibrary

并通过 Godocs 进行搜索,我无法在 syscall 包中找到对此函数的引用。是否可以加载库并调用其函数?

最佳答案

在 POSIX 平台上,您可以使用 cgo 调用 dlopen和 friend :

// #cgo LDFLAGS: -ldl
// #include <dlfcn.h>
import "C"

import fmt

func foo() {
handle := C.dlopen(C.CString("libfoo.so"), C.RTLD_LAZY)
bar := C.dlsym(handle, C.CString("bar"))
fmt.Printf("bar is at %p\n", bar)
}

关于go - 从 Go 调用 so 文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com