我需要将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/