无法在我的python文件中使用go共享库

8zzbczxx  于 2023-10-14  发布在  Go
关注(0)|答案(1)|浏览(72)

我有一个名为main.go的文件,它定义了一个名为test的函数。我希望能够从我的python脚本调用这个函数。

main.go

package main

import "C"

// export test
func test() int {
    return 1
}

func main() {}

编译:go build -o lib.so -buildmode=c-shared main.go

main.py

import ctypes

mylib = ctypes.CDLL("./lib.so")

result = mylib.test()

print(result)

当我运行Python程序时,我得到这个错误:AttributeError: ./lib.so: undefined symbol: test
我错过了什么?
Go版本go version go1.21.3 linux/amd64
Python版本:Python 3.10.12
我尝试更新Go(以前我有版本1.21.1)

chhqkbe1

chhqkbe11#

除了// export之外,一切都是正确的,有一个额外的空间产生了问题

package main

import "C"

//export test      <------ remove the extra space here
func test() int {
    return 1
}

func main() {}
python main.py

输出量:

相关问题