esto es muy confuso. Pasé mucho tiempo leyendo publicaciones sobre esto en la pila, etc. Aún estoy confundido.Compatibilidad de * .dll * .a * .lib * .def entre VisualStudio y gcc
Estoy usando Qt y C++ para la codificación. En Qt, estoy usando la opción gcc para un compilador.
El problema es que muchas bibliotecas de terceros que he probado no parecen funcionar.
Soy nuevo en archivos .dll, .a, .lib, .def y esquemas de biblioteca.
Pregunta 1:
En mi limitada experiencia (he tratado de 7 o 9 bibliotecas hasta ahora), proveedores de bibliotecas rara vez le indican si el archivo .dll se hizo con VisualStudio o GCC. Esto agrega mucha confusión. Casi nunca dejan en claro con qué compilador es compatible la biblioteca. Así que agradecería algunos consejos de la vida real de cómo lidiar con esta pesadilla. Casi todas las bibliotecas que probé son proyectos OpenSource. No nombraré nombres aquí, pero estos son proyectos bien conocidos. Estoy seguro de que el problema es mi falta de conocimiento ...
MinGW y gcc Mundial
Pregunta 2:
Por lo que yo puedo decir, dinámica C++ bibliotecas para MinGW gcc universo requieren de estos, a la derecha ?
* .h
* .dll
* .a
Pregunta 3:
Por desgracia, el archivo .a es a menudo ausente y la biblioteca no funciona. Esto es muy confuso Si falta el archivo .a, ¿no tengo suerte?
Pregunta 4:
¿Puedo generar el archivo .a para MinGW/gcc si el * .dll se hizo con gcc?
Pregunta 5: ¿Puedo generar el archivo .a para MinGW/gcc si el * .dll se hizo con VisualStudio?
Pregunta 6:
¿Es posible que un * .dll (hecho con MinGW/gcc) sea demasiado viejo y ya no sea compatible con los nuevos MinGW/gcc?
Pregunta 7:
Qt los proyectos que utilizan MinGW/gcc nunca necesitan archivos * .lib, ¿verdad? Eso es solo una cosa de VisualStudio, ¿verdad?
Pregunta 8:
No necesito un archivo * .def para usar un * .dll en un proyecto de Qt usando MinGW/gcc, ¿verdad?
VisualStudio Mundial
Pregunta 9:
Por lo que yo puedo decir, dinámica C++ bibliotecas para VisualStudio requieren los siguientes:
* .h
* .dll
* .lib
¿verdad? Nuevamente, el problema es que el archivo * .lib casi siempre falta. Además, no hay instrucciones claras sobre con qué compilador es compatible la biblioteca. Entonces, ¿cómo puedo saber si es solo para VisualStudio o no?
Pregunta 10:
Si falta el archivo .lib ¿no tengo suerte?
Pregunta 11:
¿Puedo generar el archivo .lib para VisualStudio si el * .dll se realizó con VisualStudio? ¿Cómo?
Pregunta 12:
¿Puedo generar el archivo .lib para VisualStudio si el * .dll se hizo con MinGW/gcc? ¿Cómo?
Pregunta 13:
¿Es posible que un * .dll (hecho con VisualStudio) sea demasiado viejo y ya no sea compatible con VisualStudio más nuevo?
Pregunta 14:
Si en QtCreator selecciono el compilador de VisualStudio, ¿es 100% compatible con bibliotecas dinámicas compiladas con REAL VisualStudio por otra persona? Creo que la opción del compilador de VisualStudio en Qt Creator es un compilador de VisualStudio falso.
Pregunta 15:
Si en QtCreator selecciono el compilador MinGW/gcc, puedo utilizar con las bibliotecas dinámicas Qt compilados con VisualStudio VERDADERO por otra persona?
Pregunta 16:
No necesito un archivo * .def para usar un * .dll en un proyecto de Qt usando MinGW/gcc, ¿verdad?
Pregunta 17: ¿Puedo convertir un * lib (que funciona con un * .dll y * .h) archivo hecho con REAL VisualStudio a un archivo * .a para que pueda utilizar el archivo * .a con el no modificado * .dll y * .h archivos en un proyecto Qt gcc?
Creo que esta complejidad es peculiar de Windows. ¡No lo tendrás cuando uses Qt en Linux! –
Es posible que desee dividir esto en varias preguntas (específicamente la variedad "¿Puedo generar X si tengo Y") ... probablemente muchas personas puedan responder algunas de estas preguntas y si las preguntas individualmente (ya que son bonitas) no relacionado con Qt) acerca de la vinculación de Windows, es posible que obtenga respuestas más rápidas. Dicho todo esto, la respuesta más breve que puedo darte es * no uses MinGW si no tienes que hacerlo * - VisualStudio es la norma admitida en la plataforma y tendrás una mejor experiencia a largo plazo (si algo de dolor en el corto plazo con las dependencias de la biblioteca de código abierto). –
-1: para hacer 16 preguntas a la vez. –