【发布时间】:2011-08-05 09:04:19
【问题描述】:
我一直在尝试在 OSX 上使用 --enable-embed 配置选项构建和链接 libphp5.so。这没有成功完成,失败主要是因为在链接阶段没有找到目标文件。
有报道称 OSX 上的 --enable-embed 选项已经被破坏了很长时间。
有没有人成功地将 Zend 引擎函数链接并嵌入到 C/C++ 应用程序中?
【问题讨论】:
我一直在尝试在 OSX 上使用 --enable-embed 配置选项构建和链接 libphp5.so。这没有成功完成,失败主要是因为在链接阶段没有找到目标文件。
有报道称 OSX 上的 --enable-embed 选项已经被破坏了很长时间。
有没有人成功地将 Zend 引擎函数链接并嵌入到 C/C++ 应用程序中?
【问题讨论】:
经过多次失败的尝试,我终于做到了。这是一个配置字符串,它将在 OSX 上为 PHP 5.3.6 构建 libphp5.a 库:
./configure --enable-embed=static --disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear --without-iconv
然后,当链接到 C/C++ 代码时,您需要添加 libresolv 以防止与 Zend Engine 中的 DNS 函数相关的链接错误。例如:
g++ -o yourapp src/main.o -Lpath/to/libs -lphp5 -lresolv
希望有一天这对某人有所帮助:-)
【讨论】:
我使用这样的一些:
CFLAGS='-m32 -m64' LDFLAGS='-m32 -m64' CPPFLAGS="-m32 -m64" ./configure --prefix=/usr/local --disable-cli --enable-embed --build="build folder" --with-iconv-dir=/usr/local/opt/libiconv/
稍后使用 phpize 启用 cli,这适用于 5.2.10 及更高版本。
编辑: 看这里:http://forums.wxphp.org/viewtopic.php?f=6&t=42 这是我对 5.4.17 的 makefile 等的完整分辨率。
【讨论】: