2012-09-19 28 views
8

Estoy intentando agregar marcos SDL y SDL_ttf a mi aplicación y lo hice de la manera habitual: los agregué en la sección "Vincular binarios con bibliotecas" y agregué una fase de archivos de copia que los copia en el directorio de Frameworks. Esto crea un paquete de aplicaciones con marcos incrustados. Sin embargo, cuando ejecuto la aplicación, me sale este error:Incorporación de marcos en un paquete de aplicaciones Mac

dyld: Library not loaded: @rpath/SDL_ttf.framework/Versions/A/SDL_ttf Referenced from: /Users/matthew.davies/Library/Developer/Xcode/DerivedData/MacHub-ambfqujqxbxyiqapaoctvsucpdeu/Build/Products/Release/MacHub.app/Contents/MacOS/MacHub Reason: image not found

No estoy seguro de qué más hacer para que la aplicación pueda encontrar los marcos a pesar de estar incrustado en su conjunto.

¿Alguna idea por favor?

Respuesta

5

Descubrí el motivo por el cual en un comentario en una página web. Necesitaba establecer la configuración de compilación "Rutas de búsqueda de ruta de acceso" en "@loader_path /../ Frameworks" y se encontraron los marcos.

¿Por qué los marcos no se buscan automáticamente en el directorio de Frameworks de un paquete de aplicaciones es un misterio para mí? ¿Estás escuchando Apple? :)

+1

Si construye las cosas de la manera en que recomienda Apple, terminará buscando '@loader_path /../ Frameworks/SDL.framework' en primer lugar, por lo que no lo necesitará en la ruta de búsqueda. Esta es una solución más segura, ya que garantiza que su aplicación no terminará vinculada a la versión incorrecta del marco. Si no haces las cosas de la manera que recomiendan ... bueno, entonces tienes que aprender todo tipo de detalles de bajo nivel. (Lo que probablemente quiera realmente aquí es 'install_name_tool', pero las probabilidades de que descubra eso por su cuenta sin saberlo con anticipación son escasas ...) – abarnert

+1

El verdadero problema aquí es que Apple tiene una buena documentación para el uso simple de" inicio " de marcos, y para los detalles de bajo nivel de cómo funciona todo, pero no mucho entre ... – abarnert

+0

En mi proyecto, el ejecutable estaba recogiendo tanto la/Library/Frameworks como la aplicación Contents/Frameworks copias del framework, y advirtió que la selección de la biblioteca no estaría definida (de hecho, SDL_Mixer no funcionó en esta configuración). Este consejo corrige ese problema, también. – Justin

Cuestiones relacionadas