C++使用pybind11编译动态库出错

文章描述了在使用learnROS环境下的VoxelNet-pytorch时遇到的链接器错误,涉及到多个undefinedsymbol,如autograd和Python内置类型异常。主要讨论了如何处理这些与torch库相关的缺失符号问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(learnROS) xlm@xlm-Legion-Y7000P-IAH7:~/fuxian/VoxelNet-pytorch-master/nms/src/build/lib.linux-x86_64-cpython-39$ ldd -r _ext.cpython-39-x86_64-linux-gnu.so
	linux-vdso.so.1 (0x00007ffe6e3c9000)
	libstdc++.so.6 => /home/xlm/anaconda3/envs/learnROS/lib/libstdc++.so.6 (0x00007f19e9240000)
	libgcc_s.so.1 => /home/xlm/anaconda3/envs/learnROS/lib/libgcc_s.so.1 (0x00007f19e9226000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f19e91c0000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f19e8fce000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f19e9477000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f19e8e7f000)
undefined symbol: _ZTVN5torch8autograd12AutogradMetaE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyInstanceMethod_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_ValueError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_IndexError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCapsule_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_NoneStruct	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: THPVariableClass	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_MemoryError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyType_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyByteArray_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCFunction_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_OverflowError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyProperty_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_RuntimeError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_NotImplementedStruct	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBaseObject_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_TypeError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c1019UndefinedTensorImpl10_singletonE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFloat_Type	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_SystemError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_ImportError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyTuple_SetItem	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_Repr	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyLong_FromSsize_t	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyByteArray_Size	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_NormalizeException	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyInstanceMethod_New	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyEval_AcquireThread	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_Str	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThreadState_DeleteCurrent	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyGILState_GetThisThreadState	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_GetAttrString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyMem_Free	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Restore	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c104impl23ExcludeDispatchKeyGuardC1ENS_14DispatchKeySetE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyType_IsSubtype	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyModule_AddObject	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCapsule_SetPointer	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyTuple_New	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_IsInstance	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZNK2at6Tensor8data_ptrIfEEPT_v	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyException_SetTraceback	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyNumber_Float	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_Next	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyTuple_Size	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Format	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_CallObject	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFloat_AsDouble	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c1010TensorImpl17set_autograd_metaESt10unique_ptrINS_21AutogradMetaInterfaceESt14default_deleteIS2_EE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_Dealloc	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyByteArray_AsString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyNumber_Check	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _PyObject_GetDictPtr	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyUnicode_FromString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: Py_GetVersion	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCapsule_SetContext	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFrame_GetLineNumber	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThread_tss_get	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBytes_Size	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyException_SetContext	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Clear	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_HasAttrString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyWeakref_NewRef	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_New	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_SetString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCapsule_GetContext	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c106detail14torchCheckFailEPKcS2_jRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThreadState_Get	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_SetItem	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCapsule_New	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyMem_Calloc	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_SetAttrString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyGILState_Release	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCapsule_GetPointer	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThread_tss_alloc	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _nms	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBytes_AsString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN2at5zerosEN3c108ArrayRefIlEENS0_13TensorOptionsE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_GetItemWithError	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThread_tss_set	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyType_Ready	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c104impl23ExcludeDispatchKeyGuardD1Ev	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyEval_SaveThread	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_ClearWeakRefs	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_GC_UnTrack	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyEval_GetBuiltins	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_WriteUnraisable	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyModule_Create2	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThread_tss_create	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFrame_GetBack	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyUnicode_AsEncodedString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Occurred	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c105ErrorC2ENS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_Copy	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN6caffe28TypeMeta26error_unsupported_typemetaES0_	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Fetch	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThreadState_New	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _PyThreadState_UncheckedGet	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _PyType_Lookup	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_CallFunctionObjArgs	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_Size	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyThreadState_Clear	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_DelItemString	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZN3c1021AutogradMetaInterfaceD2Ev	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyUnicode_AsUTF8AndSize	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyGILState_Ensure	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCMethod_New	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCapsule_GetName	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyTuple_GetItem	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFrame_GetCode	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyException_SetCause	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyUnicode_AsUTF8String	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _ZNK2at6Tensor8data_ptrIyEEPT_v	(./_ext.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBytes_AsStringAndSize	(./_ext.cpython-39-x86_64-linux-gnu.so)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值