【问题标题】:How to build fat gcc46 libstdc++ on OS X?如何在 OS X 上构建胖 gcc46 libstdc++?
【发布时间】:2011-12-26 07:13:27
【问题描述】:

我已经在我的 OS X 机器上成功构建并安装了 gcc 4.6.1,但我似乎无法让它为我创建一个胖/通用 libstdc++ 库。我如何让它做到这一点?

默认的 /usr/lib/libstdc++.6.dylib 支持以下架构:

[host:~] nsteiner% file /usr/lib/libstdc++.6.dylib
/usr/lib/libstdc++.6.dylib: Mach-O universal binary with 3 architectures
/usr/lib/libstdc++.6.dylib (for architecture i386):     Mach-O dynamically linked shared library i386
/usr/lib/libstdc++.6.dylib (for architecture ppc7400):  Mach-O dynamically linked shared library ppc
/usr/lib/libstdc++.6.dylib (for architecture x86_64):   Mach-O 64-bit dynamically linked shared library x86_64

我希望 gcc 给我一个 /usr/local/lib/libstdc++.6.dylib 用于那些相同的架构,但我尝试使用 configure--enable-multilib--with-multilib-list=i386,ppc,x86_64--enable-targets=all 显然是被误导了。 configuremake 都不会生成错误,但生成的只是:

[host:~] nsteiner% file /usr/local/lib/libstdc++.6.dylib
/usr/local/lib/libstdc++.6.dylib: Mach-O 64-bit dynamically linked shared library x86_64

【问题讨论】:

    标签: macos gcc build libstdc++ fat


    【解决方案1】:

    只有 Apple 的 GCC 4.2.1 仍然支持胖二进制文件。您必须采取额外的手动步骤(或提供该死的好包装脚本)来编译所有源代码两次,并在生成的二进制文件上运行 lipo。

    【讨论】:

    • rubenvb,lipo 确实完成了我需要的大部分工作。谢谢。 GCC 显然没有构建库的 ppc 风格,但合并 i386 和 x86_64 版本是轻而易举的事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    相关资源
    最近更新 更多