【问题标题】:Building libphp5.so for embedding in C/C++构建 libphp5.so 以嵌入 C/C++
【发布时间】:2011-08-05 09:04:19
【问题描述】:

我一直在尝试在 OSX 上使用 --enable-embed 配置选项构建和链接 libphp5.so。这没有成功完成,失败主要是因为在链接阶段没有找到目标文件。

有报道称 OSX 上的 --enable-embed 选项已经被破坏了很长时间。

有没有人成功地将 Zend 引擎函数链接并嵌入到 C/C++ 应用程序中?

【问题讨论】:

    标签: php c++ c macos linker


    【解决方案1】:

    经过多次失败的尝试,我终于做到了。这是一个配置字符串,它将在 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
    

    希望有一天这对某人有所帮助:-)

    【讨论】:

    • 可以重新启用已禁用的扩展,例如 XML 和 DOM,但可能需要链接一些额外的库等。这只是对我有用的第一个构建过程。
    【解决方案2】:

    我使用这样的一些:

    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 等的完整分辨率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-25
      • 2016-07-24
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 2021-10-29
      相关资源
      最近更新 更多