Saturday, 4 November 2017

Mingw 64 Binary Options


Aunque el siguiente no está totalmente probado aún, un instalador sin conexión parece innecesario. Basado en algunas capturas de pantalla para un informe de error, el instalador en línea hace las siguientes preguntas. Las primeras 5 opciones se utilizan para elegir un solo paquete de descarga. No sé sobre usted, pero Ive ninguna idea qué elegir para los hilos y las excepciones. Con base puramente en las estadísticas de descarga, los hilos posix se utilizan más del doble que win32, seh parece mucho más popular para 64 bits, enano para 32 bits, sjlj parece bastante poco amado. Im conjetura de 32 bits con posix y enano es el valor predeterminado. Para identificar cuáles son las opciones, utiliza un archivo repository. txt de esta carpeta. Eso es sólo un archivo de texto separado por tubería - 5 campos para las 5 opciones principales, más uno para la URL del paquete para descargar. Por cierto, si alguien sabe dónde encontrar el código fuente para el instalador, Id realmente aprecio un comentario - Ive cazado alto y bajo, se encontró por ejemplo. Informes de errores, pero no se encontró el origen del instalador. Sin embargo, las fuentes para los paquetes binarios mingw-64 son fáciles de encontrar. Los paquetes binarios están en subcarpetas de esta carpeta (Win32) y esta carpeta (Win64). No estoy seguro de lo que los accesos directos que el instalador ofrece para crear son: esto es MinGW-w64, no MSYS o MSYS2, por lo que no hay ninguna shell basada en bash para proporcionar accesos directos a. Probablemente theyre sólo atajos de comandos de Windows con la ruta de acceso establecida. Aparte de ese problema de atajos, todo lo que haces es descomprimir el paquete en una carpeta adecuada, asegúrate de que la carpeta mingw32bin o mingw64bin está en la ruta de alguna manera, y debes terminar. Ya he probado esto con uno de los paquetes de 32 bits gcc-5.4.0 - g compiló un mundo hola sin problemas. Existen otras creaciones de terceros en subcarpetas que comienzan desde un paso más allá (32 bits) y subcarpetas similares de diferentes carpetas de destino de Toolchains para 64 bits y otras versiones. Raylinn tiene varias versiones que incluyen el apoyo de Ada (y Objetivo C / C). Rubenvb tiene algunas versiones anteriores de GCC y Clang. Dongsheng-daily parece compilaciones diarias, incluso incluyendo GCC experimental 7. Si necesita MSYS también, avíseme en comentarios. He estado instalando que fuera de línea (junto con MinGW32) durante algún tiempo, así que tengo una lista de los paquetes que instalar. Usted necesita bastantes paquetes, su un dolor que los consigue de SourceForge, pero una vez que usted los tiene su desempaquetar casi siempre otra vez. Theres algunos menores postinstall para hacer - un archivo para crear, sobre todo donde encontrar MinGW, además de crear un acceso directo a la shell. Tengo secuencias de comandos AutoIt para hacer eso - un poco de un lío, utilizando métodos inapropiados porque eran lo que sabía en AutoIt en el momento, pero funcionan bien. Theres MSYS2, pero a primera vista thats otro problema de instalación en línea-asumido, utilizando el gestor de paquetes pacman - probablemente muy conveniente, pero no para la minoría que no puede usar it. MinGW-w64 para los no iniciados La versión reciente de MinGW32 total y totalmente Me rompió este fin de semana. En realidad se rompió antes, simplemente no registrarlo. Pero después de SDL2 fue incapaz de cargar OpenGL en el código que funcionaba antes de la actualización, el gato estaba fuera de la caja. Todos los pequeños problemas que tuve con las bibliotecas que actúan impares se relacionan con algo con los internos de MinGW39s que se rompen probablemente algo en glibc. (Antes de que alguien me dises por esto, sí sé que la actualización a GCC 4.7.0 es ABI incompatible, pasé cerca de dos días recompilando TODAS las bibliotecas de terceros de fuente.) Finalmente la definición del paquete MinGW para el instalador fue actualizada, pero en un Roto estado inutilizable, que incluso aseguró que MinGW no instalaría. Así que después de algunos desvíos terminé usando el MinGW-w64 tenedor. Si escuchas a la comunidad, la versión w64 es mejor y más actualizada, por lo que es un plus. Lo único que me desanimó fue la facilidad de uso de MinGW32 para ponerlo en funcionamiento con el instalador automatizado. Como resulta que no es tan difícil de obtener MinGW-w64 en funcionamiento. El único problema es que no es obvio. Por esa razón te mostraré aquí y ahora cómo obtener tu entorno MinGW-w64 en unos 5 minutos. MinGW-w64 La información en el sitio web de MinGW-w6439s es confusa, parcialmente engañosa y para las partes buenas inútil. Así que visite con precaución. Sólo descubrí el mejor curso de acción después de algún ensayo y error. Para la mayor parte utilizaremos el trabajo de la gente excelente de MinGW-construye. Proporcionan dos maneras de obtener MinGW, ya sea por el instalador del paquete 7zip. Dado que cualquier desarrollador que valga la pena su sal debe ser capaz de extraer un archivo zip, vamos a usar eso. Hay varias configuraciones de construcción que puede elegir. La primera opción es su sistema host. A menos que estés compilando (y no lo haremos) tu host es ventana. Entonces usted tiene la opción de probar y liberar. A menos que quieras mejorar GCC o la compilación de MinGW, básicamente quieres la versión de lanzamiento. Entonces usted puede elegir la versión, y que básicamente siempre quiere lo último, en mi caso que es 4.8.1. La siguiente opción es 32 vs 64 bits, que es la configuración de host, no la configuración de destino. Usted necesita saber lo que su máquina es, pero en la mayoría de los casos que sería de 64 bits y que es mi caso. La siguiente opción es la biblioteca de subprocesos utilizados y las opciones son win32 o posix (pthreads). Sin menospreciar los méritos de pthreads, que básicamente siempre quiere utilizar la biblioteca nativa threading. Después de eso usted tiene que elegir el modelo de excepción. Dependiendo del quotbitnessquot (32 contra 64 bit) usted tiene las opciones de enano, sjlj o SEH. Siguiendo la documentación, usted quiere que elija el modelo como SEH gt sjlj gt enano. Lo único que hay que tener en cuenta es que no se pueden mezclar los modelos y esperar excepciones para pasar sin problemas los límites de DLL. Así que la elección puede ser diferente para sus propósitos. Voy a utilizar SEH, que piggybacks en Window39s función estructurada de gestión de excepciones. Finalmente archivos La última cosa a elegir es la revisión y que es en casi todos los casos la última. Aquí y ahora esto es rev5. Después de descargar el archivo necesita descomprimirlo. (Tienes 7zip. Don39t) Lo descomprimí bajo C: minw64, como el original MinGW. Puedes ponerlo donde quieras, pero históricamente los paquetes no funcionan bien con rutas con espacios (por ejemplo, quotProgram Files). Esto parece haberse resuelto, ya que el instalador lo colocará por defecto en Archivos de programa. MSys Para mí MinGW y MSys van de la mano. La razón principal es que configure y make, tal como lo utilizan casi todos los proyectos de código abierto, simplemente no funcionan con cmd. La gente de MinGW-w64 no mantiene un bifurcación MSys. La buena noticia es que la gente de MinGW-build mantiene un paquete de las herramientas esenciales de desarrollo, siendo MSys, 7za, wget, svn, git, mercurial y csv. Wow, lo que un valor que puede encontrar el paquete en binario externo-paquetes y aquí y ahora la última versión es rev13. He extraído el archivo a c: msys, pero eso depende de usted. Para MSys se deben hacer algunos ajustes menores. La primera es decirle donde todo está escribiendo un fstab. Al igual que el fstab quotrealquot en una máquina Linux, MSys39 fstab dice lo que quotmountquot donde. Mi fstab (c: msysetcfstab) se parece a esto: El mínimo que usted necesita hacer es decirle donde mingw es. Esto asegurará que se encuentre el compilador. También alias los directorios de usuario Win7 en / home. Esto asegura que la configuración del usuario se persiste en varias instalaciones de MSys u otras herramientas como Cygwin o msysGit. Lo siguiente que debemos hacer es decirle al compilador que también debe buscar en la carpeta MSys39 para incluir y bibliotecas. Desde el punto de vista de GCC y amigos que se ejecutan en una máquina Windows y carpetas como / usr / include simplemente don39t existen para que no se ven allí. Pero el comportamiento se puede recuperar especificando las carpetas en CFLAGS, CXXFLAGS y LDFLAGS. Para ello, amplíe el perfil (c: msysetcprofile) con los valores siguientes: Las carpetas se convertirán por bash a las rutas de Windows antes de entregarlo al compilador. Pkg-config Esto es opcional, pero si necesita pkg-config, aquí es cómo obtenerlo para su instalación de MinGW-w64. El pkg-config original tiene una dependencia muy estúpida para glib. Es una dependencia estúpida, ya que glib también necesita pkg-config para construir. Así que si usted no tiene glib o pkg-config construido, no será capaz de construir uno o el otro. Puesto que todos, excepto los desarrolladores de Gnome (que inventaron pkg-config) pensaron que esta era una mala idea, se creó un bifurcación que resolvió esta dependencia: pkg-config-lite. Lo único que hacen es tomar el pkg-config original y empaquetar la función 4 de glib en el paquete. El resultado es que puede crear pkg-config sin dependencias. La mejor manera de obtener pkg-config-lite es tomar el paquete fuente. En mis casos es pkg-config-lite-0.28-1.tar. gz. La construcción del paquete es bastante estándar: lo único que hay que hacer es arreglar el PKGCONFIGPATH varaible para un uso adecuado en MSys. Esto se hace al igual que el CFLAGS en el perfil: Bison y Flex No mucha gente necesita bison y flex, pero lo hago. Usted puede saltar esto si usted no necesita la flexión y el bisonte. La mala noticia es que ni el bisonte ni la flexión funcionan fuera de la caja. Aunque el bisonte compile perfectamente, tropezará al intentar encontrar los archivos de datos de él. Flex por otro lado simplemente no construirá, en virtud de que alguien a través de él una buena idea para utilizar el tenedor para implementar la recursión más de analizar las expresiones léxicas. La buena noticia, alguien más resolvió el problema para nosotros. Ese es el proyecto Win Flex-bison y debes obtener la versión de lates winflexbison-2.5.zip. Aunque no es la opción más limpia, lo que hice fue simplemente extraer el contenido del archivo a c: msyslocalbin, incluyendo el directorio de datos. (El directorio de datos debe ser relativo a los ejecutables.) Al cambiar el nombre de los binarios de winbision. exe a bision. exe y winflex. exe a flex. exe cada script que los espera, los verá. La única cosa que también hice fue mover el FlexLexer. h a c: msyslocalinclude. Copy2009 - 2016 Sean rioki Farrell ImprintMinGW / FFmpeg guía de instalación Para compilar FFmpeg en Windows, es necesario instalar el entorno MinGW y unas cuantas herramientas estrictamente necesarias. Las secciones siguientes dan algunas indicaciones para instalar algunos de los componentes requeridos. Tenga en cuenta que los únicos requisitos estrictos para compilar una versión de vainilla simple de FFmpeg (sin bibliotecas externas) es MinGW (entorno de compilación) y git necesarios para descargar y actualizar el código fuente. También tenga en cuenta que a veces es más fácil cruzar la compilación, vea CrossCompilingForWindows. Que también puede contener algunas indirectas / pistas para compilar las varias dependencias youd necesidad usando mingw, también. Puede encontrar información de compilación específica de Windows en la documentación oficial en: MinGW / MSys Básicamente tiene dos opciones para un compilador: mingw mainline o mingw-w64. Ambos ofrecen gccs de trabajo para ventanas. Este último tiende a ser un poco más actualizado que el anterior, y ofrece más compatibilidad de biblioteca, como DirectShow encabezados, por lo que el uso preferentemente mingw-w64. Las instrucciones aquí son básicamente para mingw mainline, pero los dos son intercambiables. Básicamente, se instalará un paquete MinGW (MinGW o mingw-w64) y uno (MSys o Msys2), MinGW proporciona gcc y encabezados y cambia, Msys proporciona utilidades de shell como make y bash. Mingw-w64 MinGW-w64 (posiblemente como MinGW pero con mejores archivos de encabezado) se puede encontrar en: mingw-w64.sourceforge. net (tenga en cuenta que este proyecto no tiene compiladores descargables de forma predeterminada, probablemente querrá el proyecto mingw-builds, que Proporciona compiladores pre-compilados, vea la lista de opciones aquí: stackoverflow / a / 20502212/32453 y aquí mingw-w64.org/doku. php/download). Para usar mingw-w64, instale básicamente Msys utilizando la configuración de MinGW, como se indica más arriba, pero solo compruebe la opción msys para desarrolladores. A continuación, instale un compilador mingw-w64 (consulte ingar. satgnu. net/devenv/mingw32/base. html). He aquí un ejemplo: helyar. net/2014/compile-ffmpeg-64-bit-on-windows-with-msysmingw-w64 Luego configure su PATH apropiadamente, por ejemplo el mío se parece a esto: c: installsmingw-w64i686-4.9.2 - posix-dwarf-rtv3-rev0mingw32binc: MinGWmsys1.0bin. Siendo el principio del PATH. En este caso, el MINGWPATH sería C: installsmingw-w64i686-4.9.2-posix-dwarf-rtv3-rev0mingw32 También tenga en cuenta que para acceder a directshow los dispositivos de entrada que tiene que utilizar el mingw-w64 como compilador (o compilador cruzado) Ya que los encabezados rectos de MinGW no tienen esta funcionalidad aparentemente. Y para instalar las librerías youd utilice ./configure --prefix / usr / local o - prefix / c / installs / mingw-w64 / i686-4.9.2-posix-dwarf-rtv3-rev0 / mingw32 / i686-w64- Mingw32 Este último si quería instalar algo en su propio MINGWPATH. MinGW y busque la página de descarga. La forma recomendada de instalar MinGW / MSys es a través del instalador automatizado, mingw-get-setup. exe. Esto descargará la mayoría de los paquetes básicos del núcleo. Normalmente se instalará en C: MinGW pero puede definir la ruta de instalación al configurar, anote esta ruta (que llamaremos MinGW o MINGWPATH más adelante en esta guía). Una vez que instale MinGW debería ver en el menú de Windows la entrada MinGW con la opción MinGW shell. Haga clic en él y se lanzará un terminal con un shell bash. Se supone que esto es un entorno GNU / Unix, y se supone que debes conocer un poco de comandos de UNIX para pasar a través de él. Como alternativa, o en caso de que falte la entrada MinGW, debe iniciar manualmente el archivo MINGWPATH / msys / 1.0 / msys. bat. MinGW adopta un mecanismo de montaje para que los directorios de Windows aparezcan como rutas nativas similares a UNIX. Compruebe la salida del comando mount y familiarícese con el mecanismo de asignación. En el resto de la guía, cuando no se especifique explícitamente, utilice bien las rutas mapeadas UNIX. Tenga en cuenta que por defecto la casa del usuario se colocará en MINGWPATH / msys / 1.0 / home / USER, y ese será su directorio de trabajo del shell msys. Por último, debe editar la variable de ruta de acceso del entorno del sistema, agregando el directorio MINGWPATH / bin. Esto permitirá que tanto el sistema como el shell msys encuentren programas proporcionados por MinGW. Esto se puede hacer por ejemplo con: MSYS Simplemente instálelo luego ejecute su consola, podrá ejecutar configure (asumiendo youve instalado un gcc a usted PATH ya). MSYS2 MSYS2, instálelo y, a continuación, ejecute el comando mingw32shell. bat o mingw64shell. bat en el hogar de instalación de MSYS2. Tenga cuidado de no ejecutar el shell MSYS2, ya que esto resultará en FFmpegs configurar diciendo que la construcción de un binario MSYS no se recomienda y salir. Ahora instale los paquetes necesarios: Alternativamente, también puede instalar GCC desde el propio sistema MSYS2 y no necesita ninguna de las instrucciones mingw-w64 anteriores: MSYS2 viene con un sistema de gestión de paquetes llamado pacman adoptado desde Arch Linux y permite instalar fácilmente paquetes binarios Desde la línea de comandos. Para compilar FFmpeg, debe instalar el entorno mcgw-w64 GCC (ya sea en el sabor i686 o x86x64). Utilice uno de los comandos: Esto instala los comandos de gcc. exe que se construyen realmente para MSYS2 pero son los compiladores de las ventanas gcc. Configurar y hacer como de costumbre. Si utiliza MSYS2 muchos paquetes pueden instalarse fácilmente usando pacman (por ejemplo pacman - Spkg-config). Desafortunadamente, el gcc. exe que proporciona parece crear binarios que requieren archivos como libgccsdw2-1.dll y libwinpthread-1.dll (etc.) para acompañar a su ejecutable, por lo que puede causar alguna dificultad allí. Puede quitar algunos archivos para eliminar dependencias de cosas como libbzip2.dll vea ffmpeg. zeranoe / forum / viewtopic. phpf5ampt3688 y posiblemente evite el requisito libgcc. dll usando - static al enlazar tiempo. Estilo de instalación de MinGW Es una buena norma mantener los paquetes instalados localmente separados de los paquetes MinGW / MSys. Por esta razón, recomendamos usar / usr / local para los archivos instalados localmente. Esto significa que los paquetes se configurarán con --prefix / usr / local, para quitar los paquetes locales será suficiente para borrar el directorio / usr / local. Esto también debería evitar conflictos con MinGW / MSys. Git Git es el sistema de control de código fuente utilizado por FFmpeg, y lo necesita para descargar y actualizar el código fuente. El sitio oficial del proyecto Git es: La forma de instalación recomendada es a través del proyecto msysgit: El autoinstalador creará un entorno Msys independiente para Git. Con el fin de poder permitir que su MinGW y msysgit coexistan en el mismo sistema que necesita un ajuste en el entorno de Windows. De hecho, el instalador de msysgit modificará algunos de los valores de entorno establecidos por la instalación de MinGW, y es posible que deba restaurarlos manualmente. En particular, necesitará: arreglar la variable HOME, de modo que apunte a MINGWPATH / msys / 1.0 / home / USER para editar la ruta, de modo que las ubicaciones git bin y cmd se ubiquen después del directorio bin correspondiente de MinGW. Yasm yasm es un requisito no estricto, que permite la compilación optimizada por lo que se recomienda instalarlo. La forma más fácil de instalarlo para Windows es simplemente descargar el binario proporcionado en: Youll tiene que elegir entre las versiones proporcionadas (por ejemplo, 32 vs 64 bits), descargarlo e instalarlo en / usr / local / bin o en / bin. Dado que el nombre del binario suele tener el sufijo de la versión del programa (por ejemplo, se denomina yasm-1.1.0-win32.exe), debe crear una copia denominada yasm, por lo que se puede invocar utilizando simplemente yasm. También puede instalar la versión de origen y compilarla. En caso de que el sistema se queja de un archivo MSVCR100.dll que falta al intentar ejecutar yasm, es posible que deba instalar el paquete redistribuible Microsoft Visual C 2010 SP1 de Microsoft. SDL SDL es necesario para ffplay y el dispositivo de salida SDL, el sitio web del proyecto se puede mirar: Usted necesita la versión 1.2: Una vez instalado en el MINGWPATH, el FFmpeg configurar debe ser capaz de auto-detectarlo. Tenga en cuenta que las banderas SDL, como las emitidas por sdl-config / pkg-config, contienen el indicador - mwindows que impedirá que las aplicaciones inicien sesión en la consola. Como una solución alternativa necesitará eliminar ese indicador, p. Editando la secuencia de comandos sdl-config o el archivo pkg-config de SDL en lib. El error se ha informado aquí: libx264 libx264 se puede compilar e instalar en el entorno MinGWmsys. La última versión se puede encontrar en esta dirección: si desea que los archivos libx264.dll (en lugar de estático) utilice la opción --enable-shared configure. La única manera que pude encontrar cómo conseguir que esto funcione fue añadir --extra-ldflagsL ../ libx264unpackeddir --extra-cflags-I ../ libx264unpackeddir a mi ffmpeg configurar la línea, después de construir con éxito libx264. Lib. exe lib. exe es necesario para crear bibliotecas de stub de importación. dll. a, para que pueda vincular a las DLL de MSVC (compilador de Microsoft Visual Studio, incluido con él), si está planeando crear una versión de FFmpeg de estilo DLL Y necesitan / quieren hacer eso. Lib. exe es una herramienta de Microsoft utilizada para crear archivos DLL. Se incluye junto con Visual Studio. Microsoft Visual Studio Express descargar está disponible de forma gratuita. Una vez instalado, necesitará agregar el directorio donde lib. exe se encuentra en la ruta del sistema. Dlltool. exe (que es parte de binutils) se puede utilizar en lugar de lib. exe. La desventaja en este caso es que las bibliotecas de importación se rompen si utiliza la opción de optimización de vinculador en MSVC (que está habilitada de forma predeterminada). DirectShow DirectShow SDK es necesario para la captura DirectShow, compatible con el dispositivo de entrada dshow. La compatibilidad con DirectShow sólo está habilitada mediante la compilación mingw-64. Para obtener información más detallada relacionada con DirectShow, consulte la sección dshow en el manual de FFmpeg. OpenAL Requiere de la adquisición desde el dispositivo de audio utilizando el nuevo framework OpenAL: Descargue e instale el SDK (el archivo llamado OpenAL11CoreSDK. zip), luego configure con --enable-openal (puede que necesite añadir --extra-cflags and --extra-ldflags para especificar dónde se colocan las bibliotecas y los encabezados de OpenAL). Tenga en cuenta que también puede ser necesario mover todos los encabezados en el directorio de inclusión a un directorio AL independiente, que es donde FFmpeg buscará los encabezados OpenAL. Pkg-config pkg-config es un programa utilizado por muchas bibliotecas de software (FFmpeg incluido) para determinar los indicadores de compilación que se utilizarán. No está instalado de forma predeterminada por MinGW, por lo que es necesario instalarlo manualmente. También hay un FAQ relacionado de MinGW: pkg-config se puede encontrar en una de estas direcciones: En este punto usted necesita instalar los paquetes siguientes: GLib (binarios) gettext-runtime (binarios) pkg-config (binarios) gettext-runtime Contiene el intl. dll (GNU Internationalization Library) que es requerido por pkg-config. FFmpeg Para configurar una compilación básica sólo tiene que ejecutar configure en el directorio de fuentes de FFmpeg. Una vez que haya instalado todos los paquetes necesarios (MinGW es el único requisito estricto para la construcción de FFmpeg, git es necesario para actualizar su fuente FFmpeg), es necesario abrir una cáscara MinGW, cambiar el directorio a donde se registró las fuentes FFmpeg y configurar y Hacer FFmpeg de la manera habitual. NOTA: configurar es a veces dolorosamente lento en MinGW. Sugerencias de compilación de Windows Es posible que desee utilizar walker de dependencia para solucionar problemas de dependencia: depends. exe es similar en propósito a ldd. Trabajar con un terminal nativo de Windows puede ser doloroso, especialmente si tiene un teclado que no es US / EN y no tiene medios para escribir caracteres especiales como autohotkey es un buen proyecto FLOSS que permite componer accesos directos y hacer otras cosas ingeniosas: Más recursos Puede encontrar muchos recursos dedicados a FFmpeg en Windows en: En esta dirección puede encontrar un entorno MinGW utilizado para MPlayer, así como FFmpeg construye: El siguiente proyecto tiene un script para compilación cruzada de muchas dependencias FFmpeg, y puede contener sugerencias como A cómo conseguir que funcionen con mingw: github / rdp / ffmpeg-windows-build-helpers:

No comments:

Post a Comment