Saltar al contenido

Distribuir un programa compilado con MinGW g++

Tenemos la solución a este dilema, al menos eso pensamos. Si continuas con dudas dínoslo, para nosotros será un placer ayudarte

Solución:

libstdc++6.dll es la biblioteca estándar de C++, como dijiste.

libwinpthread-1.dll es para compatibilidad con subprocesos de C++ 11. MinGW-W64 tiene dos posibles variantes de subprocesos: o bien utiliza las funciones nativas de Windows como CreateThread, pero las cosas de C++11 como std::thread no estarán disponibles en ese momento; o incluya esta biblioteca y use las clases C++ 11 (también).
Tenga en cuenta que para cambiar el modelo de subproceso, deberá reinstalar MinGW. Simplemente eliminar la DLL y no usar las cosas de C ++ 11 no funcionará, no obstante, se requerirá la DLL con su instalación actual.

libgcc_s_seh-1.dll es algo sobre el manejo de excepciones de C++.

Sí, debería ser suficiente para entregar las DLL también
(o usar static vincular y entregar solo su archivo de programa).

Para proyectos complicados en los que no está exactamente seguro de qué archivos DLL deben incluirse para distribuir su aplicación, hice un práctico script Bash (para shells MSYS2) que puede decirle exactamente qué archivos DLL necesita incluir. Se basa en el binario Dependency Walker.

#!/usr/bin/sh

depends_bin="depends.exe"
target="./build/main.exe" # Or wherever your binary is
temp_file=$(mktemp)
output="dll_list.txt"

MSYS2_ARG_CONV_EXCL="*" `cygpath -w $depends_bin` /c /oc:`cygpath -w $temp_file` `cygpath -w $target`
cat $temp_file | cut -d , -f 2 | grep mingw32 > $output

rm $temp_file

Tenga en cuenta que esta secuencia de comandos debería modificarse ligeramente para su uso en MSYS normal (las directivas MSYS2_ARG_CONV_EXCL y cygpath en particular). Este script también asume que sus archivos DLL de MinGW están ubicados en una ruta que contiene MinGW.

Incluso podría usar este script para copiar automáticamente los archivos DLL en cuestión en su directorio de compilación como parte de un sistema de implementación automática.

Es posible que desee agregar las opciones -static-libgcc y -static-libstdc++ para vincular estáticamente las bibliotecas estándar de C y C++ y así eliminar la necesidad de llevar copias separadas de ellas.

Aquí puedes ver las comentarios y valoraciones de los usuarios

Recuerda compartir esta división si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *