在Windows上使用/MT编译PHP

Compiling PHP on Windows with /MT

本文关键字:MT 编译 PHP Windows      更新时间:2023-10-16

我需要将PHP静态地链接到我正在工作的项目。为了做到这一点,我相信我需要用/MT编译PHP,但它似乎是在/MD中完成的。

我能找到的关于编译PHP的唯一真正的文档是https://wiki.php.net/internals/windows/stepbystepbuild,但这并不能满足我的需求。

这是可以做到的,还是我的假设不正确?

不确定您为什么要这样做,但是您可以通过将PHP构建为静态二进制文件并稍后在c++应用程序中使用该二进制文件来接近此目的。这应该是可移植的,并且应该满足您的需求,而无需实际链接到您的应用程序。

为此,您需要在配置时包含--enable-static。例如:

./configure --enable-static=yes 
    --enable-fastcgi 
    --enable-force-cgi-redirect 
    --enable-discard-path 
    --prefix=/server/php 
    --exec-prefix=/server/php 
    --with-config-file-path=/server/php 
    --disable-all 
    --enable-shared=no 
    --enable-session 
    --with-gd 
    --with-zlib-dir 
    --with-freetype-dir 
    --enable-sockets
    --with-freetype-dir=/usr/local

您还应该将-all-static标志添加到Makefile中的BUILD_CGI标志。之后运行make,你应该得到一个静态PHP二进制文件。你现在可以在你的c++项目中使用它,而不需要任何外部需求。

另一方面,如果你可以通过创建一个c++ PHP扩展来满足你的需求,你应该看看PHP-CPP:

PHP- cpp库是一个用于开发PHP扩展的c++库。它提供了一组文档良好且易于使用的类,这些类可以用来为PHP构建本地扩展。