【发布时间】:2021-02-14 18:13:03
【问题描述】:
我编写了一个简单的代码并在 .exe 格式的 linux 中使用 g++ 编译,令人惊讶的是它在我的 linux 终端中执行。你能说一下这个原因吗? linux终端可以执行任何格式的机器代码吗?我可以在 Windows 中运行相同的程序吗? 代码:
#include<iostream>
using namespace std;
int main(){
cout<<"Hello World !"<<endl;
return 0;
}
编译代码:
g++ main.cpp -o program.exe
操作系统:Linux Mint 20 肉桂。
我通过输入./program.exe来执行
【问题讨论】:
-
啊,不,这不是构建 Windows 可执行文件。仅仅因为您将其命名为
exe并不能使其成为 Windows 二进制文件。它仍然是一个普通的 Linux 可执行文件。 Linux 不在乎你给文件起什么名字。 -
所以这不会在 Windows 上运行吗?
-
在 Linux 等 POSIX 系统中,文件名没有特殊格式。您可以为您的程序命名任何您喜欢的名称。
.exe后缀只是文件名的一部分,它不会告诉编译器或链接器生成特定格式的程序。 -
没错。它不会在 Windows 上本地运行。
-
遗憾的是,在您的本田汽车侧面涂上“Space-X”并不能将它开到火星。