Aprovechando que gcc 4.3.x permite optimizar para Core2, uso esta configuración:
./configure --cc=gcc-4 --enable-shared --disable-static --cpu=core2 --enable-gpl --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-avisynth --enable-bzlib --enable-zlib --build-suffix=-SVN
Decimos
make
y, vaya, hombre, salen errores:libavformat/rtsp.o: In function `__ntohl':
/usr/include/asm/byteorder.h:40: multiple definition of `___ntohl'
libavformat/os_support.o:/usr/include/asm/byteorder.h:40: first defined here
¿De dónde viene esto? Pues hay tres motivos encadenados:
- FFmpeg le pasa -std=c99 al compilador
- La versión 4.3.x de gcc cambia la semántica del comando inline en modo C99
- Los "includes" de las funciones C de Cygwin no cumplen la norma C99.
¿Qué soluciones hay?
- La fácil, quitamos el trozo que casca, o sea
añadimos --disable-network
a nuestra configuración. - La complicada, avisar en la lista de correo de Cygwin que habría que soportar C99 en los "includes".
Es lunes, así que vamos a usar la opción 1.
Ahora funciona la cosa, pero otra tarea pendiente es enviar un parche a ffmpeg-devel para no tener que hacer esta chapucilla con las compilaciones que crean bibliotecas compartidas.
No hay comentarios:
Publicar un comentario