我需要将PHP静态链接到我正在工作的项目。为了做到这一点,我相信我需要使用/ MT编译PHP,但它似乎是在/ MD中完成的。
我在编译PHP时能够找到的唯一真实文档是https://wiki.php.net/internals/windows/stepbystepbuild,这不符合我的要求。
可以这样做,还是我的假设不正确?
答案 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构建本机扩展。