parser parse xml xcode macos

parser - parse xml swift 4



Falta libsystem_symptoms.dylib en Xcode 8 (7)

Este es un error de XCode 8

Mientras espera una solución adecuada de Apple, el siguiente comando elimina la referencia a la biblioteca faltante de los archivos tbd.

sudo /usr/bin/sed -i.backup ''s@/usr/lib/system/libsystem_symptoms.dylib/(, /)/?@@'' / $(grep -ril /usr/lib/system/libsystem_symptoms.dylib / /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib)

No sé si funcionará para cada tipo de construcción, pero solucionó que todo no funcionaba para mí.

Acabo de actualizar a Xcode 8 y ya no puedo compilar aplicaciones basadas en xml2. Si construyo un archivo simple y trato de construirlo de la siguiente manera:

c++ myapp.cc `xml2-config --cflags` `xml2-config --libs`

... Recibo el siguiente mensaje de error:

ld: file not found: /usr/lib/system/libsystem_symptoms.dylib for architecture x86_64

No importa lo que haya en myapp.cc (la mía es solo una rutina principal que devuelve 0). El problema raíz parece ser que Apple eliminó /usr/lib/system/libsystem_symptoms.dylib en Xcode 8, pero muchos de los archivos .tbd en /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/ Los SDK / MacOSX10.12.sdk / usr / lib aún lo apuntan. ¿Alguien más se ha encontrado con un problema como este?


Hasta que Xcode8 se estabilice, retengo Xcode7.3, renombrado como

/Applications/Xcode7.3.app/

Generalmente uso Xcode8 que está en

/Applications/Xcode.app/

pero cuando encuentro errores como este, tengo la opción de

sudo xcode-select -switch /Applications/Xcode7.3.app/

Esto curó el error.

ld: file not found: /usr/lib/system/libsystem_symptoms.dylib for architecture x86_64

Para mí, al intentar instalar un paquete R:

> install.packages(''clickstream'')


La actualización final de geoHeil en https://github.com/igraph/rigraph/issues/173 me ayudó a resolver este problema en OSX.

Fue tan simple como estos dos pasos:

Terminal> brew uninstall suite-sparse --ignore-dependencies R> install.packages("igraph")

ignore-dependencies era necesario porque Octave tenía una dependencia en suite-sparse.


La respuesta de @ mnencia casi me funcionó, pero el comando sed no reemplazó nada en los archivos TLB; las copias de seguridad eran las mismas que las de los archivos modificados.

grep -ril /usr/lib/system/libsystem_symptoms.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib esta parte de su comando: grep -ril /usr/lib/system/libsystem_symptoms.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib

Lo que identificó los archivos que hacen referencia a la biblioteca eliminada y los modificó a mano.

YMMV


La respuesta de @mnencia funciona eliminando las referencias a libsystem_symptomps.dylib, pero falló en mi uso de OS X. Cambiar lo siguiente debería permitir que funcione en OS X:

sudo /usr/bin/sed -i.backup -E -e ''s@/usr/lib/system/libsystem_symptoms.dylib(, )?@@'' / $(grep -ril /usr/lib/system/libsystem_symptoms.dylib / /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib)

Espero que esto ayude a los desarrolladores de Mac.


Para cualquiera que se sienta incómodo al eliminar las referencias a libsystem_symptoms.dylib de varias ubicaciones, se me ocurrió otra solución que es lo opuesto a eliminar referencias: ¡agregar un libsystem_symptoms.dylib vacío libsystem_symptoms.dylib en /usr/lib/system !

mkdir ~/src/libempty cd ~/src/libempty touch empty.c cc -dynamiclib empty.c -o libempty.dylib sudo cp libempty.dylib /usr/local/lib/libempty.dylib cd /usr/lib/system sudo ln -s /usr/local/lib/libempty.dylib libsystem_symptoms.dylib

Excepto ... el último paso no funciona debido a la protección de integridad del sistema OS X / macOS.

Aparentemente hay más de una forma de evitar eso; puede deshabilitarlo usando csrutil y reiniciar (vea la pregunta Operación no permitida cuando está en la raíz de El Capitán ). Realmente no quiero desactivarlo (u olvido volver a activarlo), así que inicié el modo de recuperación , luego abrí una ventana de terminal y terminé el trabajo de esta manera:

cd /Volumes cd MyHardDrive cd usr/lib/system ln -s ../../local/lib/libempty.dylib libsystem_symptoms.dylib

Antes de hacer esto, estaba tratando de construir PostgreSQL 9.6 en El Capitán, y estaba obteniendo ese error de vinculador ( "ld: file not found: /usr/lib/system/libsystem_symptoms.dylib" ) en el paso de configure cuando verificó el bibliotecas readline o zlib. Después de hacer esto, PostgreSQL configuró y construyó sin problemas!


Una "solución" que he usado, que evita cualquier uso de sudo, es simplemente filtrar la -L / Aplicaciones / Xcode.app / Contenidos / Desarrollador / Plataformas / MacOSX.platform / Desarrollador / SDKs / MacOSX10.12. bandera sdk / usr / lib. En un archivo make de GNU, esto se puede hacer con el comando filter-out. Entonces, si compilo una variable LINK_LIBS, que incluye $ (shell xml2-config --libs), entonces puedo filtrar LINK_LIBS con el siguiente comando:

LINK_LIBS := $(filter-out -L$(shell xcrun --show-sdk-path)/usr/lib, $(LINK_LIBS))

Si estoy usando xml2-config, también puedo agregar un argumento "--exec-prefix = / usr" cuando lo llame:

c++ myapp.cc `xml2-config --cflags` `xml2-config --exec-prefix=/usr --libs`

No sé qué efectos secundarios potenciales de eliminar la ruta del SDK de la cadena de búsqueda de la biblioteca podrían ser, pero por ahora, estas soluciones parecen funcionar para todas mis aplicaciones.