Cha*_*les 0 compiling source windows
请原谅我缺乏专业知识,但我想知道是否可以编译开源 Windows 程序的源代码并在 Linux 上使用它的可执行文件(没有 Wine)。就我而言,它是Ant Renamer,我目前将它与 Wine 一起使用(我对 Linux 替代品不满意,它缺乏一些高级功能或 GUI)。
最简洁的答案是不。更长的答案通常不是。这取决于程序所依赖的库。
根据编写程序的语言,编译器或解释器附带的标准库可能包含更多或更少的功能。C是一种无处不在的语言,因为只有极不寻常的平台缺少 C 编译器,它有一个非常小的标准库。例如,它有文件 I/O 的概念,但没有目录,它的用户界面仅限于标准输入、标准输出和标准错误。其他任何事情都需要对操作系统或使用第三方库进行假设。一些语言选择坚持 C 在其标准库中可以做的事情,以便他们的标准库可以在 C 运行的任何地方运行。
其他编程语言在其标准库中提供了更多功能,并且可能具有至少在 Unix 和 Windows 之间可移植的事实上的标准第三方库。可移植性不是指相同的库代码在两者上运行,而是指有 Windows 实现和 Unix 实现,并且使用该库的程序不需要关心正在使用哪个。例如,Python的标准库具有管理文件和目录的接口,并附带了一些基本的 GUI 库(不像可以做到的那样漂亮或复杂,但它们是可移植的并且使用起来相对简单);此外还有一些更高级的可移植第三方库。
Unix 和 Windows 都有许多在其他系统上不可用的功能,或者它们的工作方式非常不同。图形用户界面的工作方式非常不同。一些 Unix 库已经移植到 Windows,但 Windows 的接口还没有移植到 Unix。Windows GUI 代码更多地集成到操作系统中(Unix 的 GUI 从一开始就是在不同的层设计的),并且是专有代码(来自 Unix 世界的库大多是开源的),因此它们将非常困难移植到 Unix:您基本上必须在虚拟机中运行 Windows。Wine 尝试提供 Windows 库的独立实现,但这是一项非常困难的工作。
Ant Renamer 是用 Pascal 方言编写的,这些工具是为 Windows 开发的,即Delphi。在某个时候有一个Linux 端口,但我不知道它有多成功。尤其是 GUI 库,必须从 Windows 界面重写为某些 Unix 界面。实际的答案是,如果 Ant Renamer 可以在 Linux 上运行,它需要付出巨大的努力,可能比基于对其行为的精确描述从头开始编写更多。
为了那些在搜索中发现这个问题但遇到不同问题的人 - 您可以使用 Unix 机器从 Windows 程序编译源代码以在 Windows 机器上运行,使用交叉编译器,例如mingw。
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |