Сборка библиотек Python на Mac и ошибки плоского пространства имен - PullRequest
3 голосов
/ 25 сентября 2010

Как правило, я сожалею о днях, когда мне приходится собирать библиотеки Python на Mac.У меня обычно был довольно хороший успех с использованием Boost :: Python, и если я использую distutils, в большинстве случаев времени все работает правильно.

Однако я так и не смог выяснитьТочная комбинация того, что работает / что не работает.В частности, я часто сталкиваюсь со страшной проблемой, связанной с тем, что символ не найден, потому что библиотека, которую я пытаюсь использовать, не имеет плоского пространства имен.Я попытался перейти на версию Python для MacPorts, а затем использовать только библиотеки MacPorts, а не кубики.

Самая последняя проблема, с которой я столкнулся, - это инструмент, который мне нужно использовать, который зависит от библиотеки OpenCV, что, в свою очередь, зависит от библиотеки FFMPeg (на самом деле, оба).Все компилируется, но когда я делаю «импорт MYLIB», я получаю символ _pix_fmt_info, не найденный в плоском пространстве имен.Я делаю DYLIB_LIBRARY_PRINT, чтобы просмотреть все загруженные библиотеки, и, конечно, все libavformat, libavcodec, libavutil и libswscale загружены.

Итак, вот мои вопросы.Конкретный вопрос, есть ли у кого-нибудь представление о том, что здесь может происходить.Нужно ли собирать libffmpeg вручную?Я делаю что-то действительно глупое, например, забываю библиотеку (я проверил, и я не думаю, что я ..)

В целом, есть ли хороший подход для решения проблемы плоского пространства имен?Мне всегда нужно беспокоиться о том, какие библиотеки включены?У кого-нибудь есть хороший рецепт, чтобы заставить вещи просто работать?

Иногда я скучаю по миру Linux ..


edit


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

Мне по-прежнему любопытно, что другие люди испытывают с плоскими пространствами имен, однако.

1 Ответ

0 голосов
/ 25 сентября 2010

Я видел эту проблему, когда я компилировал привязки Python "C" с параметром

-fvisibility=hidden parameter

на Mac OSX

Я понимаю, что это похоже на плоскийпроблема пространства имен.

...