首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MacOS上将PHP编译成静态二进制文件?

如何在MacOS上将PHP编译成静态二进制文件?
EN

Stack Overflow用户
提问于 2019-05-11 23:59:46
回答 1查看 236关注 0票数 3

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

代码语言:javascript
复制
./configure --enable-static --disable-all
make

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

代码语言:javascript
复制
$ 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)

有没有办法静态链接这些库?

EN

回答 1

Stack Overflow用户

发布于 2019-05-12 04:20:04

经过研究,静态链接libresolvlibSystem似乎是不可能的,也是不可取的。

在其他库中,libSystem包含libc。DNS包含诸如res_init之类的libresolv功能。两者都是由MacOS提供的。MacOS does not support static binaries.

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

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

代码语言:javascript
复制
LDFLAGS="-mmacosx-version-min=10.7" ./configure --enable-static --disable-all
LDFLAGS="-mmacosx-version-min=10.7" make

您可以通过使用otool -l并检查LC_VERSION_MIN_MACOSX来确认它是否正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56091994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档