出于某种奇怪的原因,make
在 Windows 上编译时一直给我制表错误,所以我在 Ubuntu 上试了一下,它工作得很好。
现在我想使用在 Ubuntu 上编译得到的可执行文件并在 Windows 上使用它。但是,当我在 Windows 上下载它时,我得到的文件类型不同,因为它只是 type file
。鉴于它是在 Ubuntu 上编译的,是否可以在 Windows 上运行它?
出于某种奇怪的原因,make
在 Windows 上编译时一直给我制表错误,所以我在 Ubuntu 上试了一下,它工作得很好。
现在我想使用在 Ubuntu 上编译得到的可执行文件并在 Windows 上使用它。但是,当我在 Windows 上下载它时,我得到的文件类型不同,因为它只是 type file
。鉴于它是在 Ubuntu 上编译的,是否可以在 Windows 上运行它?
Ubuntu 上的标准编译器工具链将生成 Linux 可执行文件,而不是 Windows 可执行文件。可以安装将生成 Windows 可执行文件的交叉编译器 - 这个Stack Overflow 问题和答案提供了一些关于如何安装和运行交叉编译器的提示。
这称为交叉编译。您需要一个“工具链”(编译器、链接器等)来生成适当的代码和格式,包括:
目标处理器架构。在您的情况下可能是相同的(x86 或 amd64),但有时您会针对不同的处理器进行交叉编译,例如,当您在 PC 上为 ARM 处理器构建可执行文件时。
目标 ABI(这些是使用的调用约定)。
正确的格式
正确的库,包括系统库。
根据项目的不同,这可能非常容易(只需在某处设置一个标志或环境变量)或非常困难。
您会在此处、此处或此处找到一些指示。
使适用于 Linux 的构建脚本通常不适用于 Windows。
您可以尝试在没有 Make 子系统的情况下编译您的 .c 文件(直接使用 Visual Studio 或其他 C 编译器)
如果该应用程序依赖于 POSIX 调用,您可以使用Cygwin来编译和运行该应用程序。
您可以尝试为应用程序找到特定于 Windows 的构建脚本:这通常位于不同的文件夹或完全不同的下载中。