问题描述
出于某些奇怪的原因,在Windows上进行编译时,make
一直给我提供制表错误,因此我在Ubuntu上进行了尝试,效果很好。
现在,我想使用从Ubuntu上编译获得的可执行文件,并在Windows上使用它。但是,当我在Windows上下载文件类型时,我得到的文件类型有所不同,因为它只是类型file
。考虑到它是在Ubuntu上编译的,是否可以在Windows上运行它?
最佳答案
Ubuntu上的标准编译器工具链将生成Linux可执行文件,而不是Windows可执行文件。可以安装将产生Windows可执行文件的cross-compiler-此Stack Overflow question和答案给出了有关如何安装和运行它们的一些提示。
次佳答案
这称为cross-compiling。您需要一个”toolchain”(编译器,链接器等),它将生成适当的代码和格式,其中包括:
-
目标处理器体系结构。您的情况可能是相同的(x86或amd64),但是有时您会为其他处理器使用cross-compile,例如,在PC上为ARM处理器构建可执行文件时。
-
目标ABI(使用的调用约定)。
-
正确的格式
-
正确的库,包括系统库。
根据项目的不同,这可能非常简单(只需将标志或环境变量设置在某处)或非常困难。