使用/ MT在Windows上编译PHP

时间:2014-03-10 09:54:59

标签: php c++

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

我在编译PHP时能够找到的唯一真实文档是https://wiki.php.net/internals/windows/stepbystepbuild,这不符合我的要求。

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

1 个答案:

答案 0 :(得分:1)

不确定为什么要这么做,但是你可以通过将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-CPP库是一个用于开发PHP扩展的C ++库。它   提供了一系列记录良好且易于使用的课程   可以使用和扩展来为PHP构建本机扩展。