这是我第二次吐槽 macOS,上一篇在 「是时候放弃 OS X 了」

macOS 因为 dylib 的原因去掉了静态编译的支持,于是就你就不能静态编译了。

gcc-ld

虽然苹果表示你可以编译 XNU 源码来得到 crt0.o 但是并没有文档。

顺便,即便链接了静态库, macOS 也会优先调用动态库,虽然有一个办法可以解决,就是临时屏蔽掉系统所有的动态库,这样的话应用就会只依赖 /usr/lib/libSystem.B.dylib 了。

顺道一提, CrossTool-NG 在 macOS 上绝大部分的编译失败都是因为默认是 -static


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.