Lo que las bibliotecas necesito un enlace de mi modo mixto de aplicación?
-
08-06-2019 - |
Pregunta
Estoy integración .RED de apoyo en nuestra aplicación de C++.
Es una vieja escuela de aplicación MFC, con 1 adicional sobre el archivo compilado con el "/clr" la opción que hace referencia a un CWinFormsControl.
No puedo quitar el enlace de la bandera "/NODEFAULTLIB".
(Tenemos nuestra propia construcción del sistema de gestión, no de Visual Studio.)
Esto significa que tengo que especificar todas las bibliotecas necesarias:Tiempo de ejecución VC y MFC.
Otras opciones del compilador include "/MD"
Junto a que:No puedo usar el enlace de la bandera "/FUERZA:MÚLTIPLES" y acaba de agregar todo:
Estoy buscando una que no se superponen conjunto de bibliotecas.
Solución 3
Cómo he resuelto:
- enlace con "/FUERZA:VARIOS /verbose" (que los enlaces ok) y configurar la salida a un lado.
- enlace con "/NODEFAULTIB /verbose" y el seguimiento de todo el unresolveds en la salida del paso anterior y agregar las bibliotecas de 1 por 1.
- Esto se tradujo en dobles:"AAA.lib:XXX ya se define en el BBB.lib"
- Entonces por fin lo conseguí:Vuelve a compilar administrado Y no administrado unidades con /MD y un enlace (entre otros):mscoree.lib msvcmrt.lib mfcm80d.lib
Mezcla /MT (no administrado) y /MD (administrado) resultó ser la mala idea:diferentes(superpuestas) bibliotecas son necesarios.
@ajryan:Dependcy Walker solo me dice lo de la dll se utilizan, no lo que las bibliotecas están ligados a la hora de ligar.(por ejemplo,msvcmrt.lib ?) Creo que.
Gracias por las respuestas!
Jan
Otros consejos
Como mínimo:
mscoree.lib MSVCRT.lib mfc90.lib (ajustar versión adecuadamente)
Y recorrer desde allí.
Utilice el Asistente para aplicaciones para crear un escueto aplicación MFC en su estilo (SDI y MDI / diálogo ) y, a continuación, puesto en ti depende.