символът dyld не е намерен, но nm съобщава друго (проблем с актуализацията на OS X)

Работя върху OpenGL проект, той се компилира добре, изпълнявайки го дава следната грешка:

swr-130-64-133-128:assignment Marcella$ ./run
dyld: lazy symbol binding failed: Symbol not found: _gliCreateContextWithShared
  Referenced from: /System/Library/Frameworks/OpenGL.framework/Resources/GLEngine.bundle/GLEngine
  Expected in: flat namespace

dyld: Symbol not found: _gliCreateContextWithShared
  Referenced from: /System/Library/Frameworks/OpenGL.framework/Resources/GLEngine.bundle/GLEngine
  Expected in: flat namespace

Разбрах, че това означава, че има липсващ символ в рамката на OpenGL. nm обаче твърди друго:

0000000000001239 T _gliCreateContextWithShared

Ашър имаше подобно -изглежда проблем, но не можах да разбера как да приложа неговото решение към моята ситуация.

Заслужава да се отбележи: Наскоро надстроих до OS X 10.9.2 и всички мои проекти, зависещи от тази библиотека, сега се провалят със същата грешка.


person marsella    schedule 29.03.2014    source източник
comment
Същият проблем тук с iOS Simulator, рестартирането помогна.   -  person Cfr    schedule 10.02.2015


Отговори (1)


Поправи го чрез добавяне

export DYLD_INSERT_LIBRARIES='/System/Library/Frameworks/OpenGL.framework/Resources/GLEngine.bundle/GLEngine' 

към моя .bash_profile. Вероятно не е най-елегантното решение, но такъв е животът.

person marsella    schedule 29.03.2014
comment
Можете също да добавите към Xcode Променливи на средата под Редактиране на схема. - person Dalmazio; 28.10.2015
comment
Също така търся постоянно решение за разпределени приложения, не само за приложения, стартирани в рамките на Xcode. Една връзка предлага дефиниране на ключа LSEnvironment в .plist файла на приложението и добавяне на горния ключ и низ. Изглежда обаче не работи в Yosemite 10.10.5. - person Dalmazio; 28.10.2015