代码之家  ›  专栏  ›  技术社区  ›  Ivan Vučica

在Mac上构建通用二进制文件-强制单个编译器子进程

  •  1
  • Ivan Vučica  · 技术社区  · 15 年前

    在公司,我们正在为我们的游戏创建一个端口,我们需要编译 PythonOgre

    我们已经建立了i386版本。由于我们只有1GB的RAM,我们已经强迫构建系统只使用一个内核;同时运行的第二个进程很好地进入了虚拟内存。

    现在,我们需要生成通用二进制文件,因为publisher坚持支持PPC。为了便于构建通用二进制文件,我们修改了 CFLAGS CXXFLAGS -arch i386 -arch ppc 在编译包装器代码时(Ogre3d本身似乎已经是一个通用二进制文件)。

    然而,苹果公司已经决定在创建通用二进制文件时同时使用这两个内核,这导致系统崩溃。(好吧,无论如何,爬网的CPU使用率为0.9-1.4%)。虽然通常我们会很感激这一点,但在1GB的Mac Mini上,这完全阻碍了我们的开发。

    除了获得一台新的构建机器、放弃PPC支持并生成一个只支持PPC的构建之外,我们唯一的办法就是阻止GCC生成第二个并发进程。

    2 回复  |  直到 15 年前
        1
  •  2
  •   F'x    15 年前

    我已经检查了Apple的GCC驱动程序(支持这些驱动程序的驱动程序)的源代码 -arch 选项并运行子进程),并且没有可选择的选项或环境变量。

    我留给你们的唯一选择是:

    • there ; 页面末尾)并修改文件 driverdriver.c
    • lipo

    我希望这有帮助!

        2
  •  1
  •   Chinmay Kanchi    15 年前

    仅仅关闭一个核心就可以了吗?显然,安装Apple Developer Tools(XCode等)会为您提供一个处理器系统首选项窗格,允许您关闭一个内核。我试图测试这个,但是XCode安装由于某种原因失败了。。。