我已经在我的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
明显被误导了。 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
答案 0 :(得分:2)
只有Apple的GCC 4.2.1仍支持胖二进制文件。你将不得不采取额外的手动步骤(或提供该死的好包装脚本)来编译所有源两次,并在生成的二进制文件上运行lipo。