在Windows Linux子系统上使用gcc构建的静态链接二进制文件是否可移植到所有Windows系统?

时间:2017-02-07 01:47:55

标签: windows-subsystem-for-linux

我的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系统,它还会运行吗?

1 个答案:

答案 0 :(得分:2)

没有。它需要WSL将Linux内核调用映射到Windows。其次,它需要bash来加载它,因为它是ELF可执行文件而不是Windows可执行文件。