Как правило, я сожалею о днях, когда мне приходится собирать библиотеки 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).
Мне по-прежнему любопытно, что другие люди испытывают с плоскими пространствами имен, однако.