我的Windows 10具有基于Windows Linux子系统的Ubuntu用户空间,并安装了gcc
包。使用gcc -static
,我构建了一个静态链接的二进制文件hello
,通常的实用程序描述如下:
$ ldd hello
not a dynamic executable
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=xxx, not stripped
如果我把这个可执行文件带到一个没有安装Linux支持子系统的随机Windows系统,它还会运行吗?
答案 0 :(得分:2)
没有。它需要WSL将Linux内核调用映射到Windows。其次,它需要bash来加载它,因为它是ELF可执行文件而不是Windows可执行文件。