如何在OS X上构建胖gcc46 libstdc ++?

时间:2011-11-10 15:44:42

标签: macos gcc build libstdc++ fat

我已经在我的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

1 个答案:

答案 0 :(得分:2)

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