这实际上是两个问题,但我怀疑他们有相似的答案。
我有一个依赖于X11库的程序,它在OS10.4上有不同的名称,位于不同的地方(与10.5和10.6相比)。
这个程序也依赖于不适用于ppc的库。编译ppc时可以删除这种依赖关系,但我想尽可能使用这个库(因为它可以提供几个数量级的加速)。
所以这两个问题是:
如何链接到不同操作系统版本中不同位置的动态库?或者重新说明 - 如何让动态链接器从不同操作系统版本的不同位置加载库?
如果没有ppc部件链接到该库,如何制作通用二进制链接到库的某些部分(英特尔部分)?
当然,如果我的问题有其他解决方案,我也很感兴趣。
答案 0 :(得分:1)
Apple GCC手册提到 - Xarch:
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/gcc.1.html
该文档说明
将选项应用于命令行 建筑拱门。
所以大概你想要做的事情是:
gcc -arch ppc -arch i386 -Xarch ppc -lfoo
如果您是从XCode构建的,则可以在“目标设置”面板中执行此操作。转到“Other Linker Flags”,然后单击面板左下角的齿轮按钮,选择“Add Build Setting Condition”,它将允许您为每个架构指定不同的链接器标志。