Linux 运行容器';s ELF文件不带容器

Linux 运行容器';s ELF文件不带容器,linux,containers,elf,Linux,Containers,Elf,我有一个ELF类型的文件 ELF 64位LSB共享对象,x86-64,版本1(SYSV),动态链接,解释器/lib/ld-musl-x86_64.so.1,剥离,我希望在普通linux机器(不是容器)中运行 遗憾的是,我在尝试执行时遇到错误没有这样的文件或目录 我最终想调试说ELF,这将很难在容器中完成 在谷歌上搜索了几个小时,却找不到简单的解决办法 ELF 64位LSB共享对象,x86-64,版本1(SYSV),动态链接,解释器/lib/ld-musl-x86_64.so.1,剥离 此二进制文

我有一个ELF类型的文件
ELF 64位LSB共享对象,x86-64,版本1(SYSV),动态链接,解释器/lib/ld-musl-x86_64.so.1,剥离
,我希望在普通linux机器(不是容器)中运行

遗憾的是,我在尝试执行时遇到错误
没有这样的文件或目录

我最终想调试说ELF,这将很难在容器中完成

在谷歌上搜索了几个小时,却找不到简单的解决办法

ELF 64位LSB共享对象,x86-64,版本1(SYSV),动态链接,解释器/lib/ld-musl-x86_64.so.1,剥离

此二进制文件链接到use,但您的系统上未安装此二进制文件

没有这样的文件或目录

这个错误有点令人困惑。缺少的不是二进制文件,而是它所需要的ITERpter(
/lib/ld-musl-x86_64.so.1

可以将musl与现有的GLIBC并行安装,尽管我没有找到明确的是/否答案

ELF 64位LSB共享对象,x86-64,版本1(SYSV),动态链接,解释器/lib/ld-musl-x86_64.so.1,剥离

此二进制文件链接到use,但您的系统上未安装此二进制文件

没有这样的文件或目录

这个错误有点令人困惑。缺少的不是二进制文件,而是它所需要的ITERpter(
/lib/ld-musl-x86_64.so.1


可以将musl与现有的GLIBC并行安装,尽管我没有找到明确的是/否答案。

musl用于编译可移植的静态二进制文件。您试图运行的程序的编译出现问题。标志'--static'应该传递给编译的程序,这将导致

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, with debug_info, not stripped
有关如何编译此类程序的示例:

CC=musl-gcc CFLAGS="--static" ./Configure
make

musl用于编译可移植的静态二进制文件。您试图运行的程序的编译出现问题。标志'--static'应该传递给编译的程序,这将导致

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, with debug_info, not stripped
有关如何编译此类程序的示例:

CC=musl-gcc CFLAGS="--static" ./Configure
make

请注意,该文件是一个“共享对象”,它是一个共享库(也称为DLL)。你不能执行它,你需要一个链接到库的程序(“可执行文件”),你是对的。有什么简单的方法可以实现吗?它甚至还有一个主功能,你不能“运行”一个库,真的到此为止。虽然库可能有一个
main
函数,但它不像在可执行程序中那样特殊,不会被自动调用。@Someprogrammerdude您错了:这是一个可执行文件,您可以运行它。请注意,该文件是一个“共享对象”,它是一个共享库(也称为DLL)。你不能执行它,你需要一个链接到库的程序(“可执行文件”),你是对的。有什么简单的方法可以实现吗?它甚至还有一个主功能,你不能“运行”一个库,真的到此为止。虽然库可能有一个
main
函数,但它不像在可执行程序中那样特殊,不会被自动调用。@Someprogrammerdude你错了:这是一个可执行文件,你可以运行它。我在Alpine上运行了它,解决了问题。我在Alpine上运行了它,解决了问题