- 主题:在wsl下面能否编译出linux下的可执行文件呢?
RT
我在win10系统上安装配置好wsl后并安装gcc之后,把cpp编译出可执行文件,这个可执行文件是只能在wsl里面运行呢?还是也能拷贝到真实的Linux主机里面运行呢?
--
FROM 111.196.132.*
当然可以,wsl就是linux
【 在 VChart 的大作中提到: 】
: RT
: 我在win10系统上安装配置好wsl后并安装gcc之后,把cpp编译出可执行文件,这个可执行文件是只能在wsl里面运行呢?还是也能拷贝到真实的Linux主机里面运行呢?
--
FROM 58.38.125.*
【 在 VChart 的大作中提到: 】
: RT
: 我在win10系统上安装配置好wsl后并安装gcc之后,把cpp编译出可执行文件,这个可执行文件是只能在wsl里面运行呢?还是也能拷贝到真实的Linux主机里面运行呢?
Linux 是广泛的操作系统, 它可以支持很多种平台, 但是, 这些不同的linux实际上只是实现逻辑大体相同, 但是,它们运行的机器码可能是完全不一样的, 比如跑在ARM上的,使用的ARM指令集, 跑在IBM Power服务器上的, 使用的Power指令集。 跑在PC的,使用的是x64指令集等等。
这些linux也是通过, 同一套源代码, 根据编译设置的目标指令集, 编译出来的。
当运行的编译器的宿主机, 和编译的目标代码代码程序, 不一样, 这个被称为交叉编译。
这种跨平台的交叉编译很常见, 比如, 你可以在PC机或者服务器上编译手机程序, 甚至单片机程序,编译好后在传到手机或单片机运行。
因此, 你编译的目标, 取决于你给编译器的设置,需要生成什么目标程序。而生成的目标程序,
则要看与目标硬件和目标操作系统的匹配程度, 一般, 只有同时达到指令集兼容和系统级兼容才可以完美运行。
--
FROM 124.126.0.*
wsl下无论哪个Linux发行版,都能下载编译好的Linux原生二进制执行文件直接用,因为它就是原生Linux环境。
所以如果你在wsl下安装了编译器,当然也能自己生成可执行文件,能在Linux下执行的那种。
--
FROM 171.221.52.*
可以
--
FROM 182.146.111.*