首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法加载共享库“libdl.so”或其依赖项之一

无法加载共享库“libdl.so”或其依赖项之一
EN

Unix & Linux用户
提问于 2022-04-23 11:11:00
回答 2查看 8.5K关注 0票数 2

我试图编译一个项目,但是由于缺少一个库,编译失败了。

代码语言:javascript
复制
System.DllNotFoundException: Unable to load shared library 'libdl.so' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibdl.so: cannot open shared object file: No such file or directory
 at Assimp.Unmanaged.UnmanagedLibrary.UnmanagedLinuxLibraryImplementation.dlopen(String fileName, Int32 flags)
 at Assimp.Unmanaged.UnmanagedLibrary.UnmanagedLinuxLibraryImplementation.NativeLoadLibrary(String path)
 at Assimp.Unmanaged.UnmanagedLibrary.UnmanagedLibraryImplementation.LoadLibrary(String path)
 at Assimp.Unmanaged.UnmanagedLibrary.LoadLibrary(String libPath)
 at Assimp.Unmanaged.UnmanagedLibrary.LoadLibrary()
 at Assimp.Unmanaged.UnmanagedLibrary.LoadIfNotLoaded()
 at Assimp.Unmanaged.AssimpLibrary.CreatePropertyStore()
 at Assimp.AssimpContext.CreateConfigs()
 at Assimp.AssimpContext.PrepareImport()
 at Assimp.AssimpContext.ImportFile(String file, PostProcessSteps postProcessFlags)
 at Microsoft.Xna.Framework.Content.Pipeline.OpenAssetImporter.Import(String filename, ContentImporterContext context) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\OpenAssetImporter.cs:line 291
 at Microsoft.Xna.Framework.Content.Pipeline.FbxImporter.Import(String filename, ContentImporterContext context) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\FbxImporter.cs:line 24
 at Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1.Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import(String filename, ContentImporterContext context) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\ContentImporter.cs:line 45
 at MonoGame.Framework.Content.Pipeline.Builder.PipelineManager.ProcessContent(PipelineBuildEvent pipelineEvent) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\Builder\PipelineManager.cs:line 669

我一直在github,Google,Stackoverflow,askubuntu和这里的MonoGame的问题跟踪器中寻找已知的解决方案。

在检查我的系统时,如果该文件实际上与sudo find / -iname libdl.so一起存在,则找不到该文件。但是,在/usr/lib/i386-linux-gnu/usr/lib/x86_64-linux-gnu中,我可以找到一个libdl.so.2文件,这个文件听起来是相关的。

https://packages.ubuntu.com/search?suite=trusty&arch=any&searchon=contents&keywords=libdl.so上,我可以看到libdl.so文件包含在D6包中,我已经安装了这个包,但是重新安装是一个不顾一切的举动,没有任何成功。

这是sudo apt-config dump | grep APT::Architecture的结果

代码语言:javascript
复制
APT::Architecture "amd64";
APT::Architectures "";
APT::Architectures:: "amd64";
APT::Architectures:: "i386";

这是dpkg-query --list libc6的结果

代码语言:javascript
复制
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version         Architecture Description
+++-==============-===============-============-=================================
ii  libc6:amd64    2.34-0ubuntu3.2 amd64        GNU C Library: Shared libraries
ii  libc6:i386     2.34-0ubuntu3.2 i386         GNU C Library: Shared libraries

我在运行爸爸!_OS 21.10 64位.

我能做些什么来获得libdl.so文件,即使是以一种健康和受支持的方式?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-05-04 07:02:59

第一步,您应该检查构建所需的库(包含确切版本)。

dl库现在是C标准库的一部分。发布说明告诉我们,从你的2.34版本开始,

以前在库libp线程、libdl、libutil、libanl中实现的...all功能已经集成到libc中。新的应用程序不再需要与-lpthread、-ldl、-lutil、-lanl链接。为了向后兼容,提供了空静态存档libp线程.a、libdl.a、libutil.a、libanl.a,以便链接器选项继续工作。链接到glibc 2.33或更早版本的应用程序继续加载相应的共享对象(这些对象现在是空的)。

这意味着您必须选择一个较旧版本的libc库(在2.34之前),通常是在较旧的OS版本上,或者如果您知道要做什么,则调整Makefile (以删除显式的libdl.so要求)。

票数 1
EN

Unix & Linux用户

发布于 2022-07-07 19:46:50

您可以简单地创建如下所示的符号链接:

代码语言:javascript
复制
$ whereis libdl.so.2
libdl.so.2: /usr/lib/libdl.so.2 /usr/lib32/libdl.so.2
$ sudo ln -s /usr/lib/libdl.so.2 /usr/lib/libdl.so
$ sudo ln -s /usr/lib32/libdl.so.2 /usr/lib32/libdl.so

在我的例子中,这对MonoGame来说已经足够了。

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

https://unix.stackexchange.com/questions/700097

复制
相关文章

相似问题

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