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.