在 Ubuntu 上编译 C 文件并在 Windows 上使用可执行文件

hkj*_*447 14 c make ubuntu windows-10

出于某种奇怪的原因,make在 Windows 上编译时一直给我制表错误,所以我在 Ubuntu 上试了一下,效果很好。

现在我想使用我在 Ubuntu 上编译得到的可执行文件并在 Windows 上使用它。但是,当我在 Windows 上下载它时,我得到的文件类型是不同的,因为它只是类型file. 鉴于它是在 Ubuntu 上编译的,是否可以在 Windows 上运行它?

joh*_*n_e 47

Ubuntu 上的标准编译器工具链将生成 Linux 可执行文件,而不是 Windows 可执行文件。可以安装一个交叉编译器来生成 Windows 可执行文件 - 这个Stack Overflow 问题和答案给出了一些关于如何安装和运行一个的提示。

  • 这(交叉编译)在技术上是正确的答案。但是请注意,如果 OP 不熟悉一般的编译内容(看起来如此),那么他们最好尝试让软件在 Windows 上编译,而不是设置交叉编译,恕我直言,交叉编译通常不太好由工具支持。 (40认同)

jca*_*ron 12

这称为交叉编译。您需要一个“工具链”(编译器、链接器等)来生成适当的代码和格式,包括:

  • 目标处理器架构。在您的情况下可能是相同的(x86 或 amd64),但有时您会为不同的处理器交叉编译,例如当您在 PC 上为 ARM 处理器构建可执行文件时。

  • 目标 ABI(这些是使用的调用约定)。

  • 正确的格式

  • 正确的库,包括系统库。

根据项目的不同,这可能很容易(只是在某处设置一个标志或环境变量)或非常困难。

您会在此处此处此处找到一些提示。