He estado desarrollando una aplicación Cocoa que usa ambosLas bibliotecas libav * e ImageMagick C, pero tengo problemas para distribuir la aplicación. He enlazado a varias bibliotecas estáticas en Xcode así:
La aplicación se construye y funciona perfectamente bien en mimáquina. Ahora estoy tratando de ejecutarlo en una computadora diferente. Archivé la compilación y la exporté como una aplicación macOS en Xcode, lo que me deja con el archivo .app. Ahora, cuando intento ejecutarlo en un mac diferente, aparece el siguiente error:
Si corro otool -L binary_name
en el binario construido, me sale un.dylib para cada uno de los archivos .a incluidos. Pensé que el punto central de una biblioteca estática era que se integra en el binario principal, y que no hay necesidad de hacer ningún enlace dinámico. ¿Por qué sigue intentando cargar el dylib?
Respuestas
0 para la respuesta № 1Logré resolver este problema y creo que se debió a la nota técnica que se encuentra aquí: Usando versiones estáticas de bibliotecas dinámicas existentes. Dado que las dependencias que estoy usando se instalaron a través de homebrew, el lib
las carpetas de cada dependencia tenían los archivos .a y .dylib, y Xcode se vinculaba utilizando las dylibs. Para solucionarlo, copié todos los archivos .a que necesitaba en una carpeta separada y ajusté mi Library Search Paths
en Xcode para apuntar a la nueva carpeta. La aplicación ahora crea y vincula a las bibliotecas estáticas como debería.