Cómo utilizar bibliotecas dinámicas y bibliotecas estáticas compiladas por MinGW en vc
El sufijo de la biblioteca estática compilada por Mingw es .a, el sufijo de la biblioteca dinámica importada compilada por mingw es .dll.a, y la biblioteca con el sufijo .lib en Windows puede ser estática biblioteca También puede ser una biblioteca de importación de una biblioteca dinámica.
La biblioteca de importación de la biblioteca dinámica compilada por Mingw se puede usar directamente en vc, por ejemplo
#pragma comment(lib, "libx264.dll.a")
De esta manera no es necesario generar una biblioteca de importación para una biblioteca dinámica con un sufijo .lib. También hay métodos en Internet sobre cómo generar .lib a partir de un .dll.
Si la biblioteca de importación dinámica libpthread.dll.a está vinculada, la aplicación que publique debe incluir la dll pthread.
La ventaja de utilizar una biblioteca estática es que el módulo del componente de la aplicación publicada no necesita incluir archivos DLL relacionados. Si desea utilizar una biblioteca estática compilada por mingw, puede hacer lo siguiente:
#pragma comment(lib, "libx264.a")
Pero simplemente vincular una biblioteca estática de este tipo no es suficiente, también es necesario vincularla
libgcc.a
libmingwex .a
Es posible que también necesite vincular con libmsvcrt.a
De lo contrario, se informarán un montón de errores: error LNK2001: símbolo externo no resuelto p>
Estas bibliotecas anteriores se pueden encontrar en el directorio o subdirectorio C:\MinGW\lib.
La razón para vincular estas bibliotecas es la diferencia entre el compilador gcc y el compilador vc utilizado por mingw