首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复“无法打开共享对象文件:没有这样的文件或目录”错误?

问如何修复“无法打开共享对象文件:没有这样的文件或目录”错误?
EN

Stack Overflow用户
提问于 2018-02-09 11:49:09
回答 1查看 1.2K关注 0票数 1

我试图在一个带有mono的ubuntu容器中运行一个C#应用程序。应用程序在windows环境中正确运行。我刚把所有的目录都复制到了码头卷。

我可以使用以下命令构建应用程序,没有错误或警告:

MSBuildCSharpSampleLSV2.csproj /t:Rebuild /p:Configuration=Release /p:Platform="x86“

但是,当我尝试使用以下命令运行应用程序时:

MONO_LOG_LEVEL=debug mono CSharpSampleLSV2.exe

我遇到了一些类似的错误:

Mono: DllImport错误加载库'P_LSV2.DLL':'P_LSV2.DLL:无法打开共享对象文件:没有这样的文件或目录‘。

我不明白为什么我会犯这个错误。库位于与windows环境相同的位置。

如果需要更多的信息,我会提供。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-09 12:04:57

异常提示中提到了P_LSV2.DLL库的扩展“P_LSV2.DLL”,提示这也是您试图调用的特定于windows的本机库(DllImport建议使用pinvoke)。Linux本地库几乎总是有扩展".so“。所以,当您在linux上时,您试图从为windows编译的本机库中调用一些东西--这是行不通的。

.NET编译成IL (中间语言),然后在运行时将该语言编译为该代码正在执行的平台的本机代码。与此形成对比的是,本机库包含已编译好的目标平台代码。因此,在linux上不可能使用为windows平台编译的本机库。

因此,您需要在某个地方获取为linux编译的库。如果这样的版本不可用,源代码也不可用(从源代码您可以尝试为linux编译,尽管这可能不容易)-你运气不好。

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

https://stackoverflow.com/questions/48705159

复制
相关文章

相似问题

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