gpt4 book ai didi

php - 如何在 MacOS 上将 PHP 编译为静态二进制文件?

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:19 25 4
gpt4 key购买 nike

我正在尝试在 MacOS 上从源代码编译 PHP。我正在使用 --enable-static 配置选项来构建静态库,如下所示:

./configure --enable-static --disable-all
make

虽然这会生成一个有效的二进制文件,但如果我使用 otool 检查二进制文件,我可以看到它使用了两个共享库,libresolv.9.dylib libSystem.B.dylib:

$ otool -L sapi/cli/php   
sapi/cli/php:
/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1)

有什么方法可以静态链接这些库吗?

最佳答案

在对此进行研究后,听起来静态链接 libresolvlibSystem 似乎是不可能或不可取的。

libSystem 在其他库中包含 libc。 libresolv 包含 DNS 函数,例如 res_init。两者均由 MacOS 提供。 MacOS does not support static binaries .

由于这些库在 MacOS 上始终可用,因此可以将它们用作共享库。

如果您需要支持旧版本的 MacOS,您可以使用 -mmacosx-version-min 链接器标志:

LDFLAGS="-mmacosx-version-min=10.7" ./configure --enable-static --disable-all
LDFLAGS="-mmacosx-version-min=10.7" make

您可以通过使用 otool -l 并检查 LC_VERSION_MIN_MACOSX 来确认它是否有效。

关于php - 如何在 MacOS 上将 PHP 编译为静态二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com