Как определить, какую библиотеку использовать в Mac OS X? - PullRequest
4 голосов
/ 01 мая 2011

У меня проблемы с тем, чтобы заставить программу работать, и у меня такое ощущение, что Mac OS X решила использовать не ту библиотеку.Я хочу, чтобы он использовал SDL_image, но я думаю, что вместо этого он выбрал SDL-1.2.Есть ли способ заставить его использовать SDL_image?Если это вообще помогает, я пытаюсь запустить программу, написанную на языке программирования Go.

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

objc[96907]: Class SDLTranslatorResponder is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL-1.3.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDLTranslatorResponder is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_ttf-2.0.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDL_QuartzView is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_ttf-2.0.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDL_QuartzWindowDelegate is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_ttf-2.0.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDL_QuartzWindow is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_ttf-2.0.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDLTranslatorResponder is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_image-1.2.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDL_QuartzView is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_image-1.2.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDL_QuartzWindowDelegate is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_image-1.2.0.dylib. One of the two will be used. Which one is undefined.
objc[96907]: Class SDL_QuartzWindow is implemented in both /opt/local/lib/libSDL-1.2.0.dylib and /usr/local/lib/libSDL_image-1.2.0.dylib. One of the two will be used. Which one is undefined.

1 Ответ

3 голосов
/ 19 июня 2011

Вы пытались использовать install_name_tool -change в своем исполняемом файле, чтобы ссылки на библиотеки имели абсолютный путь?

Вы также можете попробовать использовать install_name_tool для изменения rpath для исполняемого файла и удалить / opt / local, еслитам.Или, если rpath отсутствует, вы можете попробовать добавить / usr / local / lib и-изменить ссылки на библиотеки для использования @ rpath / (см. «Man dyld» и «man install_name_tool»)

Вы также можете переключиться сMacPorts на Homebrew , тогда все ваше программное обеспечение с открытым исходным кодом находится в / usr / local, и вы не столкнетесь с такой проблемой.

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