如何在OS X 10.6.2上实际构建64位Python

时间:2010-02-01 15:24:06

标签: python macos

为什么呢?我想这样做是因为安装SciPy推荐它,我认为这将是一个很好的学习经验。之前已经问过这个问题(例如here)。首选答案似乎是使用MacPorts,但正如我所说,我想了解它是如何完成的。

无论如何,我抓住源码(Python-2.6.4.tgz)并解压缩。我阅读了有关如何构建64位“框架”构建的说明。据我了解,我应该运行

./configure --enable-framework --enable-universalsdk=/ --with-univeral-archs=intel

配置运行一段时间......并完成。当我做的时候,显然有问题:

$ make
gcc -c -arch ppc -arch i386 -isysroot /  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c
In file included from //usr/include/architecture/i386/math.h:626,
                 from //usr/include/math.h:28,
                 from Include/pyport.h:235,
                 from Include/Python.h:58,
                 from ./Modules/python.c:3:
//usr/include/AvailabilityMacros.h:108:14: warning: #warning Building for Intel with Mac OS X Deployment Target < 10.4 is invalid.

使用错误的参数调用gcc。我是否有错误的参数来配置,或者我应该在环境中设置编译器标志,或者是什么?

编辑:我没有在配置输出中看到任何错误...我看到这一行:

checking for OSX 10.5 SDK or later... yes

结尾
creating Modules/Setup
creating Modules/Setup.local
creating Makefile

Edit2:我以为我是从自述文件中复制过来的......

我做到了!自述文件中有一个拼写错误!我的年龄相关的阅读障碍再次起作用。 ;)

2 个答案:

答案 0 :(得分:1)

您的./configure选项不正确。 --enable-universalsdk应设置为正确的SDK,而不是/! 这就是gcc混淆的原因,请参阅选项-isysroot。 因此,请检查/Developer/SDKs中的SDK,并设置正确的SDK。

此外,您的gcc仅使用-arch ppc -arch i386调用,其中不包含{64}标志的-arch x86_64

答案 1 :(得分:1)

为了选择正确的答案,我在上面写下评论:

正如Virgil Dupras所注意到的那样, 在这面旗帜中出现了错字:

--with-universal-archs=intel

它来自文件Mac/readme,但我应该在发布之前抓住它。 另外,我建议您阅读Ned Deily的非常有用的评论。看看那些家伙并投票给他们。