我已经在我的 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,但我尝试使用 --enable-multilib 来
或 configure
--with-multilib-list=i386,ppc,x86_64
或 --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
最佳答案
只有 Apple 的 GCC 4.2.1 仍然支持胖二进制文件。您将不得不采取额外的手动步骤(或提供非常好的包装器脚本)来编译所有源代码两次,并在生成的二进制文件上运行 lipo。
关于macos - 如何在 OS X 上构建 fat gcc46 libstdc++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082196/