Как на самом деле собрать 64-битный Python на OS X 10.6.2 - PullRequest
3 голосов
/ 01 февраля 2010

Почему? Я хочу сделать это, потому что установка SciPy рекомендует это, и я подумал, что это будет хорошим опытом обучения. Этот вопрос был задан ранее (например, здесь ). Предполагается, что предпочтительным ответом будет использование MacPorts, но, как я уже сказал, я хотел бы понять, как это делается.

В любом случае, я беру исходный код (Python-2.6.4.tgz) и распаковываю. Я прочитал инструкцию о том, как собрать 64-битную сборку "framework". Насколько я понимаю, мне надо запустить

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

configure работает некоторое время ... и завершает работу. Когда я делаю, очевидно, возникает проблема:

$ 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 вызывается с неверными аргументами. У меня неправильные аргументы для настройки, или я должен установить флаги компилятора в среде, или что?

Редактировать: я не вижу ошибок в выводе из configure ... и вижу эту строку:

checking for OSX 10.5 SDK or later... yes

заканчивается

creating Modules/Setup
creating Modules/Setup.local
creating Makefile

Edit2: я думал, что скопировал из readme ...

Я сделал! В спецификации readme есть опечатка! Моя возрастная дислексия снова поднимается. ;)

Ответы [ 2 ]

1 голос
/ 04 февраля 2010

Чтобы выбрать правильный ответ, я перефразирую комментарии выше:

Как заметил Вирджил Дупрас, было опечатка в этом флаге:

--with-universal-archs=intel

Это происходит из файла Mac/readme, но я должен был поймать его перед публикацией. Также я рекомендую вам прочитать очень полезные комментарии Неда Дейли. Посмотри на этих парней и проголосуй за них.

1 голос
/ 01 февраля 2010

Ваша опция ./configure неверна. --enable-universalsdk должен быть установлен на правильный SDK, а не /! Вот почему gcc запутался, см. Опцию -isysroot. Итак, проверьте, какие SDK у вас есть в /Developer/SDKs, и установите правильный.

Более того, ваш gcc вызывается только с -arch ppc -arch i386, который не включает -arch x86_64, который является 64-битным флагом intel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...