如何阻止setup.py在MacOSX构建中包含-arch ppc?
看起来Xcode4不再把PPC作为构建选项了。当使用setup.py来处理包含C扩展的模块时,setup.py总是尝试用这些选项进行构建:
gcc-4.2 ... -DMACOSX -arch i386 -arch ppc ...
这会出现错误信息:
/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed
Installed assemblers are:
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64
/usr/bin/../libexec/gcc/darwin/i386/as for architecture i386
如果我把失败命令中的-arch ppc去掉,构建就能顺利完成,然后我可以重新运行setup.py build
继续进行下一步。
对于只包含一个C扩展的模块,比如ssl,这样做还可以,但像PIL这样需要构建很多扩展的模块就麻烦多了。
有没有办法让setup.py在编译参数中不包含-arch ppc呢?
1 个回答
2
或者,修复Xcode 4安装中的ppc汇编器问题。
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin