2011-02-10 36 views
6

Estoy tratando de implementar una aplicación usando macdeployqt. Todos los marcos Qt se copian correctamente en el paquete de aplicaciones. El problema que encuentro es que macdeployqt no tiene permisos de escritura en los marcos copiados que originalmente residen en/usr/local/lib. Esto es porque he instalado qt usando homebrew que parece hacer que la instalación sea solo de lectura. Mi pregunta es si hay una mejor manera de solucionar este problema y luego cambiar manualmente todos los permisos de las bibliotecas qt dentro de/usr/local/lib para que pueda usar macdeployqt desde un proyecto qt .pro. (No quiero usar macdeployqt manualmente con sudo o tal)macdeployqt en frameworks instalados homebrew

La razón por la que estoy preguntando es porque estoy usando muchas bibliotecas de terceros en el proyecto (se copian bien, etc.) que necesito para actualizar a menudo a través de Homebrew y, por lo tanto, tiene que volver a hacer el permiso que cambia en ellos.

¡Gracias de antemano!

+0

Mis bibliotecas de Qt framework son propiedad de mi usuario y grupo local. Recomiendo cambiar el suyo al mismo y terminar con él, ya que nunca he tenido ningún problema con esto. – TheDarkKnight

+0

@ Merlin069, me enfrento al mismo problema, ¿encontró una respuesta? –

+0

si su aplicación depende de homebrew, y está instalando qt, ¿por qué le gustaría preocuparse de copiar las dependencias en su .app? ¿No deberían resolverse primero con la instalación de homebrew? – phyatt

Respuesta

1

Sólo en caso de que alguien encuentra este antiguo puesto en busca de información sobre macdeployqt:

utilizar un script para hacer macdeployqt con preferencia a los comandos de secuencias de comandos macdeployqt en su archivo .pro. Eso le permitirá cambiar los permisos en los archivos sobre la marcha.

Aquí es [un fragmento de] la secuencia de comandos que utilizo para una de mis aplicaciones:

https://bugreports.qt-project.org/browse/QTBUG-23268

Si estás en Windows y no dispone de fiesta, puede utilizar Perl o Python. La secuencia de comandos a la que se hizo referencia anteriormente modifica los archivos sobre la marcha para solucionar un error: puede colocar aquí lo que desee, incluido el cambio de permisos en los archivos.

El uso de una secuencia de comandos también significa que tiene la flexibilidad de agregar comandos más adelante para hacer la firma del código, el empaquetado o cualquier otra cosa que necesite.

El "lenguaje de scripting" de Qt .pro realmente genera comandos Makefile bajo el capó y puede ser bastante oscuro si desea realizar tareas de implementación relacionadas con rutas y conjuntos de archivos.

También deberá crear un objetivo adicional o incluirlo en su objetivo de compilación; de cualquier forma, el proceso de compilación se volverá más complejo y propenso a errores.

Descargo de responsabilidad: Trabajé en Qt durante 8 años como ingeniero sénior para Nokia/Trolltech, y también he publicado una aplicación comercial multiplataforma utilizando Qt.

+0

El enlace https://bugreports.qt-project.org/browse/QTBUG-23268 está roto. –