如何在 Mac OS X 上编译通用库,同时为 i386 和 x86_64 二进制部分提供单独的编译或链接选项?

我正在使用Xcode 5.02为Mac OSX编译一个使用luajit库(以静态链接方式)的程序。

luajit的运行时内存机制要求在x86_64构建Mac OSX时添加链接选项“-pagezero_size 10000 -image_base 100000000”,否则函数luaL_newstate()将返回NULL且在初始化时会崩溃。

(关于为什么会发生崩溃的详细技术信息,请参考此网址,因为这不是本问题帖子的主题)

但是对于i386构建,不需要此链接选项,而且实际上它无效,因为图像基地址超出了32位界限。

因此,现在的情况是我可以成功地构建单一架构的程序(其中x86_64架构带有链接选项,而i386架构则没有链接选项)。但我不知道如何构建通用二进制文件。因为我无法找到指定不同架构的单独链接选项的地方在通用二进制构建设置中。

有人知道如何解决这个问题吗?

谢谢!

点赞