3

我已经在我的 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-multilibor --with-multilib-list=i386,ppc,x86_64or--enable-targets=all显然被误导了。既不configure也不make产生错误,但所产生的只是:

[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
4

1 回答 1

2

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

于 2011-11-10T16:01:12.720 回答