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

我只能在https://wiki.php.net/internals/windows/stepbystepbuild上找到有关编译PHP的唯一真实文档,但这并不满足我的要求。

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

最佳答案

不知道为什么要这么做,但是可以通过将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标志添加到BUILD_CGI中的Makefile中。
之后,运行make,您应该得到一个静态的PHP二进制文件。
现在,您可以在C++项目中使用它,而无需任何外部要求。

另一方面,如果您可以通过创建C++ PHP扩展来满足要求,
您应该看看PHP-CPP:

关于php - 使用/MT在Windows上编译PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22296881/

10-11 22:51
查看更多