catalpa-bungei 发表于 2023-9-23 16:31:31

undefined symbol

复现代码时,出现:
OSError: /root/miniconda3/envs/droidSLAM/lib/python3.9/site-packages/lietorch/lib/liblietorch.so: undefined symbol: _ZN2at4_ops5zeros4callEN3c108ArrayRefINS2_6SymIntEEENS2_8optionalINS2_10ScalarTypeEEENS6_INS2_6LayoutEEENS6_INS2_6DeviceEEENS6_IbEE
如何解决?

isdkz 发表于 2023-9-23 16:31:40

这个错误通常是由于链接器无法解析某个符号导致的。在这种情况下,它无法找到名为"_ZN2at4_ops5zeros4callEN3c108ArrayRefINS2_6SymIntEEENS2_8optionalINS2_10ScalarTypeEEENS6_INS2_6LayoutEEENS6_INS2_6DeviceEEENS6_IbEE"的符号。



要解决这个问题,你可以尝试以下几个步骤:



1. 确保你的代码和依赖项都是最新的版本,并且已经正确地安装。



2. 检查你的链接器命令行是否正确。你可能需要添加一些库路径或链接其他库。



3. 检查你的代码是否正确地使用了所有依赖项。如果你的代码没有正确地使用依赖项,那么链接器可能无法找到所需的符号。



4. 如果你使用的是第三方库,那么你可能需要联系该库的维护者,以了解是否存在任何已知问题或解决方案。



希望这些步骤能够帮助你解决这个问题。

陶远航 发表于 2023-9-23 16:31:56

这个错误通常表示缺少对应的符号或库文件。在这种情况下,错误信息提到了 liblietorch.so 这个库的一个未定义的符号。

要解决这个问题,您可以尝试以下几个步骤:

1. 确保您的库文件 liblietorch.so 正确安装,并且路径正确。您可以检查该文件是否存在于 /root/miniconda3/envs/droidSLAM/lib/python3.9/site-packages/lietorch/lib/ 目录下。

2. 检查依赖项。这个错误可能是由于缺少其他依赖库文件引起的。您可以使用 ldd 命令来检查库文件的依赖关系。例如,运行以下命令检查 liblietorch.so 的依赖关系:
   
      ldd /root/miniconda3/envs/droidSLAM/lib/python3.9/site-packages/lietorch/lib/liblietorch.so
   

   确保所有依赖的库都已正确安装。

3. 检查环境变量。确保环境变量设置正确,例如 LD_LIBRARY_PATH 包含了库文件所在的路径。您可以尝试将库文件所在的目录添加到 LD_LIBRARY_PATH 环境变量中,然后重新运行程序:
   
      export LD_LIBRARY_PATH=/root/miniconda3/envs/droidSLAM/lib/python3.9/site-packages/lietorch/lib:$LD_LIBRARY_PATH
   

如果上述步骤仍然无法解决问题,那可能是由于库文件不兼容或损坏的原因。您可以尝试重新安装相关的库文件或联系库的提供者获取更多支持。

请注意,以上提供的解决方案是一般性的建议,具体情况可能因您的环境和代码而有所不同。
如果问题已经解决,请设置最佳答案
页: [1]
查看完整版本: undefined symbol