Нужна помощь в установке autopy пакета Python на Mac OS X - трудности с libpng и png.h - PullRequest
7 голосов
/ 06 декабря 2011

Мне было интересно, может ли кто-нибудь помочь мне понять это.Когда я пытаюсь собрать python setup.py build (или pip install, или easy_install), это происходит

Суть

src/png_io.c:3:17: error: png.h: No such file or directory
src/png_io.c: In function ‘newMMBitmapFromPNG’:
src/png_io.c:34: error: ‘png_struct’ undeclared (first use in this function)
src/png_io.c:34: error: (Each undeclared identifier is reported only once

... куча ошибок ...

src/png_io.c:332: error: ‘PNG_TRANSFORM_IDENTITY’ undeclared (first use in this function)
lipo: can't figure out the architecture type of:  /var/folders/kt/d8t29zkx7kd_7c_mr17ntv6m0000gn/T//ccubs4CM.out

error: command 'gcc-4.2' failed with exit status 1

libpng находится в библиотеке / фреймворке, которая находится в пути поиска для <> includes (я проверил с помощью cpp -v), но она там как libpng.framework, а затем заголовки находятся в подкаталоге, называемомзаголовки.В файле libpng.framework также есть несколько версий libpng.Я также использую 64-битный питон.Есть идеи, как поступить?

Спасибо, Пэт

Ответы [ 2 ]

2 голосов
/ 12 апреля 2012

Ошибка, как вы уже догадались, из-за того, что компилятор не может найти файл заголовка png.h

Можете ли вы сказать мне, как интегрируется фреймворк?Используете ли вы -I и -L?

Правильный синтаксис для включения фреймворка с GCC:

gcc -F * dir *

или

gcc -iframework * dir *

Надеюсь, что это поможет

С http://gcc.gnu.org/onlinedocs/gcc/Darwin-Options.html

-Fdir Добавить каталог директории фреймворка dir в начало списка каталогов для поисказаголовочные файлы.Эти каталоги чередуются с указанными опциями -I и сканируются в порядке слева направо.

A framework directory is a directory with frameworks in it. A framework is a directory with a Headers and/or PrivateHeaders directory contained directly in it that ends in .framework. The name of a framework is the name of this directory excluding the .framework. Headers associated with the framework are found in one of those two directories, with Headers being searched first. A subframework is a framework directory that is in a framework's Frameworks directory. Includes of subframework headers can only appear in a header of a framework that contains the subframework, or in a sibling subframework header. Two subframeworks are siblings if they occur in the same framework. A subframework should not have the same name as a framework, a warning will be issued if this is violated. Currently a subframework cannot have subframeworks, in the future, the mechanism may be extended to support this. The standard frameworks can be found in /System/Library/Frameworks and /Library/Frameworks. An example include looks like #include <Framework/header.h>, where Framework denotes the name of the framework and header.h is found in the PrivateHeaders or Headers directory.
0 голосов
/ 12 июня 2012

В данном конкретном случае это потому, что вам не хватает libpng.(Фреймворк с png.h)

Вы можете установить его с http://ethan.tira -thompson.com / Mac_OS_X_Ports.html , затем повторно запустить установку автозапуска, и вы должны быть готовы!

...