执行go get安装go-python3时遇Py_True等未定义引用错误求助
链接DataDog go-python3库时出现Py_True/Py_None/Py_False未定义引用错误
环境配置
- Ubuntu 20.04
- Golang 1.9.2
- Python 3.7.10
我尝试使用DataDog的go-python3库,执行go get github.com/DataDog/go-python3时失败。之前找到过类似的问题案例,但其中的解决方案对我无效。
用go get -x查看编译过程,发现链接阶段报错:
mininet@mininet-vm:~/go/src/Dockerfiles$ go get -x github.com/DataDog/go-python3 ... pkg-config --cflags python3 pkg-config --libs python3 CGO_LDFLAGS="-g" "-O2" "-L/opt/py/lib" "-lpython3.7m" /usr/local/go/pkg/tool/linux_amd64/cgo -objdir ... # github.com/DataDog/go-python3 /usr/bin/ld: $WORK/github.com/DataDog/go-python3/_obj/_cgo_main.o:/tmp/go-build/github.com/DataDog/go-python3/_obj/cgo-generated-wrappers:236: undefined reference to `Py_True' /usr/bin/ld: $WORK/github.com/DataDog/go-python3/_obj/_cgo_main.o:/tmp/go-build/github.com/DataDog/go-python3/_obj/cgo-generated-wrappers:233: undefined reference to `Py_None' /usr/bin/ld: $WORK/github.com/DataDog/go-python3/_obj/_cgo_main.o:/tmp/go-build/github.com/DataDog/go-python3/_obj/cgo-generated-wrappers:230: undefined reference to `Py_False' collect2: error: ld returned 1 exit status
我已经通过pkg-config配置了PKG_CONFIG_PATH和LD_LIBRARY_PATH环境变量,确认-L/opt/py/lib -lpython3.7m已经正确添加到CGO_LDFLAGS末尾。
我怀疑过Golang 1.9版本过旧,但目前看起来核心是链接问题。在VM和Docker环境中都重试过,问题完全一致,恳请帮忙排查原因。
内容的提问来源于stack exchange,提问作者WJT
相关产品推荐
相关产品推荐

