【发布时间】:2011-11-07 21:23:21
【问题描述】:
我正在尝试在 Windows 7 上编译“hello world”类型扩展,但遇到了各种问题。我的最终目标是将编译后的扩展与 PHP 一起使用(使用 wampserver2)。
是否可以在 Linux 上编译该扩展,并且仍然可以在 Windows 上运行?
我注意到 WAMP/PHP 中 ext 文件夹中的所有扩展名都是 .dll。有没有办法在 linux 机器上为 Windows 生成 DLL,还是我也必须在 Windows 上编译?
【问题讨论】:
-
交叉编译是可能的,但是你基本上需要一个windows dev。 linux系统上的环境(例如Wine)供编译器使用。使该工作达到最终 .dll 在真实 Windows 系统上工作的程度所涉及的努力很可能不值得。
-
@Marc B,所以基本上如果有人有一个扩展,他们想在 linux 和 windows 上运行(对于 wampserver 等),他们必须编译两次,一次在 Windows 上,一次在Linux。我做对了吗?我的意思是,我不能只使用 linux 编译,并且以某种方式让它在 Windows 上也能开箱即用。对吗?
-
是的,两种不同的编译。 linux 编译将使用 libc 函数等,Windows 编译将使用 Win32 或其他。将 .so 文件重命名为 .dll 可不是一件简单的事情。
标签: php windows dll compilation php-extension