2010-02-06 4 views
3

Я столкнулся с проблемой сборки для Python 2.6.4 на Snow Leopard.Проблема с Python Build на Mac OS 10.6/Snow Leopard

  • Mac OS X 10.6
  • Yonah CPU, 32-битный
  • GCC-4.2.1

Обновление Я

решаемые путем удаления всех нестандартные включает в себя и библиотеки из CFLAGS (там было чтобы быть uuid/uuid.h там ...). Тем не менее, он составил , несмотря на то, что ошибка описана ниже, с /usr/include/hfs/hfs_format.h:765, являющейся горячей точкой. Для любознательного или изобретательного, исходного файла в вопросе:

$ cat /usr/include/hfs/hfs_format.h 
... 
748 #include <uuid/uuid.h> 
749 
750 /* JournalInfoBlock - Structure that describes where our journal lives */ 
751 
752 // the original size of the reserved field in the JournalInfoBlock was 
753 // 32*sizeof(u_int32_t). To keep the total size of the structure the 
754 // same we subtract the size of new fields (currently: ext_jnl_uuid and 
755 // machine_uuid). If you add additional fields, place them before the 
756 // reserved field and subtract their size in this macro. 
757 // 
758 #define JIB_RESERVED_SIZE ((32*sizeof(u_int32_t)) - sizeof(uuid_string_t) - 48) 
759 
760 struct JournalInfoBlock { 
761   u_int32_t  flags; 
762   u_int32_t  device_signature[8]; // signature used to locate device. 
763   u_int64_t  offset;  // byte offset to the journal on the device 
764   u_int64_t  size;   // size in bytes of the journal 
765   uuid_string_t ext_jnl_uuid; 
766   char   machine_serial_num[48]; 
767   char   reserved[JIB_RESERVED_SIZE]; 
768 } __attribute__((aligned(2), packed)); 
769 typedef struct JournalInfoBlock JournalInfoBlock; 
... 

Я оставляю этот вопрос открытым, так как сборка дала слишком много предупреждений и эту ошибку, и до сих пор озадачивает меня немного ...

Update II

Чтобы избавиться от предупреждения относительно цели развертывания, я редактировал Makefile перед компиляцией:

$ cat Makefile 
... 
126 MACOSX_DEPLOYMENT_TARGET=10.3 # => 10.6 
... 

Оригинал Вопрос

При попытке построить Python 2.6.4 из исходников, я бегу в ошибку:

кажется, корень в Python/mactoolboxglue.c. Подсказки приветствуются!


Также я получаю много предупреждений этих видов:

/usr/include/AvailabilityMacros.h:108:14: warning: #warning Building for \ 
Intel with Mac OS X Deployment Target < 10.4 is invalid. 
gcc -c -arch ppc -arch i386 -isysroot/-fno-strict-aliasing -DNDEBUG -g \ 
-fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include \ 
-DPy_BUILD_CORE -o Objects/structseq.o Objects/structseq.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 Objects/structseq.c:4: 
+1

'/usr/include/AvailabilityMacros.h:108:14: warning: #warning Building for \ Intel с Mac OS X Цель развертывания <10.4 недействительна. Эти ошибки вызваны сценарий Python ./configure MACOSX_DEPLOYMENT_TARGET по умолчанию 10.3. См. Мой ответ, как избавиться от них. –

+0

Вместо того, чтобы редактировать make-файл, перед экспортом следует выполнить экспорт MACOSX_DEPLOYMENT_TARGET = 10.6'./Configure'. –

ответ

4

Попробуйте добавить --universal-archs=32-bit к configure аргументов.

EDIT: Вы можете также необходимо установить переменную окружения MACOSX_DEPLOYMENT_TARGET=10.6 и явно использовать 10,6 SDK:

export MACOSX_DEPLOYMENT_TARGET=10.6 
./configure --universal-archs=32-bit --enable-universalsdk=/Developer/SDKs/MacOSX10.6.sdk ... 

Есть еще некоторые вопросы Конфигурация с построения Python на 10.6. Если вы повторно используете каталог сборки, убедитесь, что вы очистили все кэшированные файлы, которые, возможно, оставили предыдущие прогонки configure.

BTW, если вам нужна только 32-разрядная версия, вы можете использовать 0.установщик 2.6.4 OS X от python.org.

+0

configure: ошибка: непризнанная опция: --dep-target = 10.6 // однако я нашел параметр MACOSX_DEPLOYMENT_TARGET = 10.3 в Makefile; изменил его, и теперь результат выглядит намного лучше; еще раз спасибо! – chang

+0

Извините, я отправил в спешке. --dep-target - это аргумент сценарию сборки установщика, а не настройка. Да, установка переменной окружения перед вызовом configure - это правильная вещь. Фиксация ответа. –

1

кажется, что вы не только один работает в эту ошибку:

Не уверен, если это имеет ту же причину:

http://trac.macports.org/ticket/21282

прокрутки вниз до конца комментарии, которые кажется, указывают на положительный результат. (Повторяется здесь для удобства):

... // Цитата trac.macports.org:

"пытаются переименовать, переместить или удалить /opt/local/include/uuid/uuid.h" ... // Конец цитаты

+0

Я не использую macports, но я прочитаю нить (снова;), спасибо ... – chang

 Смежные вопросы

  • Нет связанных вопросов^_^