首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++ Boost + Python:对Py_Dealloc的未定义引用

C++ Boost + Python:对Py_Dealloc的未定义引用
EN

Stack Overflow用户
提问于 2021-11-15 21:13:37
回答 1查看 461关注 0票数 2

我试图在Boost上使用Python模块。然而,我得到了一个错误,我找不到该做什么。

好像缺了开关什么的,但我真的找不到.

有人有线索吗?

谢谢!

代码语言:javascript
运行
复制
/usr/include/python3.8/object.h|478|undefined reference to `_Py_Dealloc'|

系统数据:

代码语言:javascript
运行
复制
Using Code::blocks, Python 3.8, Linux Mint, installed Boost by apt-get

构建日志:

代码语言:javascript
运行
复制
g++ -Wall -fexceptions -g -I/usr/lib/x86_64-linux-gnu/ -I/usr/include/python3.8/ -I/home/tavares/Downloads/boost/boost_1_77_0/stage/lib -c /home/tavares/Trabalho/pesquisa/softwares/optpipeline/PyOPY/PyOPI/bark.cpp -o obj/Debug/bark.o
g++ -Wall -fexceptions -g -I/usr/lib/x86_64-linux-gnu/ -I/usr/include/python3.8/ -I/home/tavares/Downloads/boost/boost_1_77_0/stage/lib -c /home/tavares/Trabalho/pesquisa/softwares/optpipeline/PyOPY/PyOPI/main.cpp -o obj/Debug/main.o
g++ -L/usr/lib/x86_64-linux-gnu/ -o bin/Debug/PyOPI obj/Debug/bark.o obj/Debug/main.o  -lboost_program_options -lboost_system -lboost_python38  
/usr/bin/ld: obj/Debug/bark.o: in function `_Py_DECREF':
/usr/include/python3.8/object.h:478: undefined reference to `_Py_Dealloc'
/usr/bin/ld: obj/Debug/bark.o: in function `boost::python::detail::none()':
/usr/local/include/boost/python/detail/none.hpp:16: undefined reference to `_Py_NoneStruct'
/usr/bin/ld: /usr/local/include/boost/python/detail/none.hpp:16: undefined reference to `_Py_NoneStruct'
/usr/bin/ld: obj/Debug/bark.o: in function `boost::python::api::object::object()':
/usr/local/include/boost/python/object_core.hpp:400: undefined reference to `_Py_NoneStruct'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu//libboost_python38.so: undefined reference to `PyExc_ValueError'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu//libboost_python38.so: undefined reference to `PyLong_AsLong'
EN

回答 1

Stack Overflow用户

发布于 2022-11-05 12:23:44

这有点老了,但是试试看

代码语言:javascript
运行
复制
$(python3.10-config --ldflags --embed)

链接阶段的命令。

您的链接命令变成了类似于

代码语言:javascript
运行
复制
g++ -L/usr/lib/x86_64-linux-gnu/ -o bin/Debug/PyOPI obj/Debug/bark.o obj/Debug/main.o  -lboost_program_options -lboost_system -lboost_python38
$(python3.10-config --ldflags --embed)

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69980953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档