干杯
在公司,我们正在为我们的游戏创建一个端口,我们需要编译PythonOgre,一个面向Python的Ogre3d包装器。这是一个巨大的代码块,尤其是生成的包装器代码。我们有一个带1GB内存的Mac Mini。在
我们已经建立了i386版本。由于我们只有1GB的RAM,所以我们强制构建系统只使用一个内核;同时运行的第二个进程在虚拟内存中进行了一次很好的旅行。在
publisher坚持要制作二进制文件,因为我们现在需要支持PPC。为了便于构建通用二进制文件,我们修改了CFLAGS
和{
然而,苹果决定在创建通用二进制时同时使用两个核心,这导致了系统翻滚和死亡。(好吧,不管怎样,在0.9-1.4%的CPU使用率下爬行)虽然通常我们会很欣赏这一点,但在1GB的Mac Mini上,这完全阻碍了我们的开发。在
除了获得一个新的构建机器,放弃对PPC的支持并生成一个只支持PPC的构建之外,我们唯一的办法就是阻止GCC产生第二个同步进程。在
我们该怎么做呢?在
我已经检查了Apple的GCC驱动程序(支持那些
-arch
选项并运行子进程的驱动程序)的源代码,没有任何选项或环境变量可供选择。在我认为留给你的唯一选择是:
driverdriver.c
,以便进程按顺序启动(而不是并行启动)lipo
连接最终构建对象(可执行文件、共享库等)我希望这有帮助!在
关掉一个核心就行吗?显然,安装苹果开发者工具(XCode等)会给你一个处理器系统偏好面板,允许你关闭一个核心。我试着测试这个,但是XCode安装由于某种原因失败了。。。在
编辑:我知道这是一段时间以前的事,但我只是想了些事。为什么不分别使用-march=i386和-march=ppc构建,然后使用lipo组合二进制文件呢?在
相关问题 更多 >
编程相关推荐