【发布时间】:2023-04-06 11:50:01
【问题描述】:
我已经阅读了一些关于在 Linux 上编译 C/C++ 源代码以便在 Windows 上运行它们的内容。我也用 MinGW 尝试过,一切正常。
但是,我不明白为什么必须在 Linux 上使用 MinGW 来制作可在 Windows 上运行的二进制文件。是什么让 g++ 输出无法在 Windows 上运行?还有什么使 g++ 输出可以在 Linux 上运行它们?输出文件是否有不同的结构:标题、数据等,它们只能由特定的操作系统解释?
谁能帮我说清楚?如果你们中的任何人能向我解释这一点,我将不胜感激,不仅作为业余爱好者,而且作为对操作系统感兴趣并想知道这背后真正意义的人。
【问题讨论】:
-
en.wikipedia.org/wiki/Comparison_of_executable_file_formats - 每个操作系统系列或多或少都有自己的。
-
Does the output file have a different structure: header, data etc and they can be interpreted only by a specific operating system?是的。而且,可用的环境和库也完全不同(例如,程序启动时需要执行什么等) -
不存在任何称为 C/C++ 的语言。
-
您究竟希望您的 Linux 系统在哪里拥有所有在 MS Windows 上运行的可执行文件必须链接的所有 MS Windows 库?它们不会凭空出现在您的 Linux 系统上。这就是 MinGW 安装的。
标签: c++ linux windows operating-system cross-compiling