Cómo resolver “_vImagePermuteChannels_ARGB8888”, al que se hace referencia en:¿ERROR?
Pregunta
Cuando convierto RGBA a ARGB, utilicé este código:
vImage_Buffer src;
src.height = height;
src.width = width;
src.rowBytes = srcBytesPerRow;
src.data = srcRows;
vImage_Buffer dest;
dest.height = height;
dest.width = width;
dest.rowBytes = destBytesPerRow;
dest.data = destRows;
// Swap pixel channels from BGRA to RGBA.
const uint8_t map[4] = { 2, 1, 0, 3 };
vImagePermuteChannels_ARGB8888(&src, &dest, map, kvImageNoFlags);
Recibo el siguiente error:Para eso agregué Convertion.h
y Accelerate.framework
.
Símbolos indefinidos para la arquitectura armv6:
"_vImagePermuteChannels_ARGB8888", referenciado en:-[Imagen del proceso CCOverlayView] en CCOverlayView.old:Símbolo(s) no encontrado(s) para la arquitectura armv6 Collect2:LD devolvió el código de salida 1
¿Alguien puede ayudarme por favor?
Solución
Es posible que esté viendo uno de dos problemas:
1) Esta rutina se encuentra en el Accelerate.framework
.Necesitas agregar esto a tu proyecto.
2) Esta rutina sólo está disponible en iOS 5.0 y posteriores;probablemente no deberías incluir armv6 en estas compilaciones.(Los dispositivos que requieren armv6 no pueden ejecutar iOS 5.0).