【问题标题】:glibc error running a .net core self contained executable on linux在 Linux 上运行 .net 核心自包含可执行文件的 glibc 错误
【发布时间】:2020-10-16 08:25:08
【问题描述】:

我正在编译一个带有linux-x64 RID 的.Net Core 3.1 自包含可执行文件。 当我尝试在我的 Debian Linux c00kb0xA 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux 上运行可执行文件时,出现以下错误。

./Business Connectivity Service: /lib64/ld-linux-x86-64.so.2: version 'GLIBC_2.3' not found (required by ./Business Connectivity Service)

./Business Connectivity Service: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.4' not found (required by ./Business Connectivity Service)

./Business Connectivity Service: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.3' not found (required by ./Business Connectivity Service)

我似乎找不到解决办法。有没有办法找出我在需要这些依赖项的可执行文件中到底在做什么?或者我可以以某种方式将它们与我的自包含可执行文件一起发送吗?或者更好的是,我可以以某种方式针对另一个 glibc 进行编译吗?

谢谢

【问题讨论】:

  • 您是否尝试部署应用程序。 wakeupandcode.com/…
  • 不涉及 Azure。
  • 如果你在一台机器上构建,如果网络版本不一样,你必须在第二台机器上部署。
  • 嗯?但它们是自包含的,您不需要在目标机器上安装 .net。
  • 啊,现在我明白了。就像我说的,我部署为linux-x64

标签: c# linux visual-studio-2019 glibc .net-core-3.1


【解决方案1】:

这些错误消息完全没有意义:所需的版本信息实际上存在于这些库中。鉴于系统的其余部分似乎按预期工作(因此 glibc 二进制文件可能没有损坏),因此可以合理地假设 Business Connectivity Service 没有正确构建并且包含无效的 ELF 数据。

【讨论】:

  • 嘿 Florian Weimer,感谢您的意见。您对如何调试有任何想法吗?我没有在构建过程中定制任何东西。我所做的只是在 VS2019 中为“单个可执行文件”按钮开票。
  • 如果您可以上传在某处重现该问题的二进制文件,我可以看看它有什么问题。要么就是这样,要么自己单步执行 glibc 动态加载程序。 8-)
  • 那太不可思议了 :) 我已经在这里上传了文件:gofile.io/d/c5oGa7 如果您需要任何其他信息,请告诉我。提前非常感谢!
  • @SinnedLolwut 很高兴听到这个问题是否得到解决,如果解决了,解决方案是什么。
  • @PerLundberg 很遗憾没有,它还没有解决。
猜你喜欢
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 2021-08-22
  • 2021-12-05
  • 2018-02-21
相关资源
最近更新 更多