0

这实际上是两个问题,但我怀疑他们有相似的答案。

我有一个依赖于 X11 库的程序,该库在 OS10.4 上具有不同的名称并且位于不同的位置(与 10.5 和 10.6 相比)。

同样的程序还依赖于在 ppc 上不起作用的库。在为 ppc 编译时可以删除这种依赖关系,但我想尽可能使用这个库(因为它可以提供几个数量级的加速)。

所以这两个问题是:

  1. 如何链接到不同操作系统版本中不同位置的动态库?或者改写 - 如何让动态链接器在不同的操作系统版本上从不同的地方加载库?

  2. 如何在没有 ppc 部件链接到该库的情况下将通用二进制链接的某些部分(英特尔部分)链接到库?

当然,如果我的问题有其他解决方案,我也很感兴趣。

4

1 回答 1

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 构建的,则可以在 Target settings 面板中执行此操作。转到“Other Linker Flags”,然后单击面板左下角的齿轮按钮并选择“Add Build Setting Condition”,它将让您为每个架构指定不同的链接器标志。

于 2011-04-07T18:49:02.300 回答