2012-02-09 15 views
5

Tengo esta aplicación SFML 1.6 que funciona bien en Mac OS X Lion. Actualmente, la forma en que lo tengo es que los marcos SFML se encuentran en/Library/Frameworks y funciona bien; sin embargo, para instalar en otras máquinas requiere privilegios de administrador. Por eso quiero hacer una de las siguientes:SFML 1.6 sin privilegios de administrador

  1. poder instalar las bibliotecas en/usuario/idk/Library/Frameworks o similares

  2. Paquete las bibliotecas y la aplicación de una imagen de disco de Mac en y tienen que hacer referencia a la biblioteca de allí

  3. estáticamente vincular las bibliotecas

Ahora ya que el programa está construido usando el Terminal w Con makefiles, preferiría que la solución estuviera en el Terminal en lugar de XCode, pero si fuera absolutamente necesario, entonces supongo que de alguna manera podría importar el proyecto a XCode.

¿Alguien puede explicar (exactamente) cómo hacer cualquiera de los tres anteriores, cualquiera que sea el más fácil de hacer?

Por cierto estoy usando el LLVM GCC 4.2 que se incluye con XCode 4.1 para la compilación.

EDIT:

¿Qué tal alguien trata a los otros dos, aparte de enlazado dinámico?

Respuesta

3

Lo resolví así ... un desperdicio de puntos de recompensa ... ¡CHUPA POR USTED! : P

hice algo bastante simple y se sorprendió de que nadie más lo había sugerido:

Solía ​​install_name_tool para cambiar los nombres y las dependencias de las bibliotecas dinámicas SFML para que puedan ser colocados en el mismo directorio que el ejecutable, o en una carpeta especial, pero eso es relativo al directorio del ejecutable. Por lo tanto, no requiere privilegios de administrador, y lo empaqueté fácilmente en un paquete de aplicaciones.

+1

¡Votaron por la buena respuesta, pero vergüenza por privar a la gente de su generosidad! :) – Danra

+0

Siempre daría la recompensa si alguien diera una solución buena y funcional. :RE – slartibartfast

2

Probablemente deberías vincular estáticamente a SFML. Para hacer esto, deberá compilar SFML como una biblioteca estática. La forma más fácil de hacerlo es modificar el proyecto Xcode que viene con SFML ("SFML with Intel 64 bits.xcodeproj"). Debe cambiar el tipo Mach-O de las bibliotecas al Static Library.

He cargado la versión modificada de SFML with Intel 64 bits.xcodeproj que uso, la puedes obtener here. (Este proyecto requiere GCC4.2, por lo que solo funciona con Xcode 3).

La vinculación estática a SFML es muy similar a la vinculación dinámica a la misma, solo recuerde que también necesita vincular a Cocoa.framework, OpenGL.framework y CoreFoundation.framework.

También tenga en cuenta que si desea implementar en OSX 10.4 o una versión anterior, debe vincular estáticamente al libfreetype. El libfreetype que se suministra con el sistema operativo se encuentra en una ubicación diferente en 10.4 y anteriores, y esto causa problemas cuando se vincula dinámicamente.

+0

Parece que XCode no le gusta SFML ahora ... comete errores al compilar. Hay alguna otra manera de hacer esto? Porque parece que SFML 1.6 tiene problemas con XCode en Mac 10.7 ... – slartibartfast

+0

@myrkos: ¿Qué tipo de problemas? Por favor sé más específico. – Mankarse

+0

De acuerdo. Así que, básicamente, en el "Custom Shell Script" dice "cp: 3/build/xcode /../../ include/SFML /: No hay tal archivo o directorio". Ese es el error. – slartibartfast

Cuestiones relacionadas