Autor
|
Tema: Encabezados precompilados en Visual C++ (Leído 2,033 veces)
|
WalterBlanco
Desconectado
Mensajes: 7
|
Hola:
Estoy aprendiendo Visual C++. Hice una aplicación sencilla, creada a partir de un proyecto "empty". Empecé a agregar cosas y mientras compilaba debug, no tuve problemas. Cuando quise compilar release me di cuenta que debía utilizar encabezados precompilados para obtener programas mas eficientes en compilación. Pero hasta ahora se ma ha hecho imposible compilar la versión release de mi programa porque no he podido generar los encabezados precompilados a partir de stdafx.h y stdafx.cpp. El error que me da es que no tengo el archivo .pch. He seguido las sugerencias de algunos amigos para realizar la precompilación de mis encabezados pero nada parece funcionar. Con la opción debug el programa compila bien y se ejecuta sin problemas, pero al cambiar a la opción release, me manda errores de compilación. Cada vez que hago algún cambio en la configuración de compilación me encuentro con nuevos errores al compilar release. ¿Alguien tiene alguna idea sobre cómo se puede resolver esto?
Gracias.
|
|
|
En línea
|
|
|
|
WalterBlanco
Desconectado
Mensajes: 7
|
Aunque nadie comentó sobre mi duda, veo que algunos entraron. Así que podría ser de interés para algunos saber cómo solucioné el problema planteado.
Básicamente, lo que hice fue: 1- Revisar una a una las propiedades del Compilador C/C++ y del Vinculador. Busqué información sobre cuál era la opción más conveniente en cada caso para compilar RELEASE en mi máquina. Bastante tedioso y lleva mucho tiempo. 2- En mi proyecto usaba OpenCV. Después de un rato me percaté que los archivos de biblioteca opencv que incluía para la compilación DEBUG no son los mismos que se deben usar en la compilación RELEASE. Para compilar DEBUG en la versión OpenCv 2.4.10 debe incluir como dependencias adicionales las siguientes librerias: opencv_calib3d2410d.lib opencv_contrib2410d.lib opencv_core2410d.lib opencv_features2d2410d.lib opencv_flann2410d.lib opencv_highgui2410d.lib opencv_imgproc2410d.lib opencv_legacy2410d.lib opencv_ml2410d.lib opencv_nonfree2410d.lib opencv_objdetect2410d.lib opencv_photo2410d.lib opencv_stitching2410d.lib opencv_superres2410d.lib opencv_ts2410d.lib opencv_video2410d.lib opencv_videostab2410d.lib
Para compilar RELEASE deberá incluir: opencv_calib3d2410.lib opencv_contrib2410.lib opencv_core2410.lib opencv_features2d2410.lib opencv_flann2410.lib opencv_highgui2410.lib opencv_imgproc2410.lib opencv_legacy2410.lib opencv_ml2410.lib opencv_nonfree2410.lib opencv_objdetect2410.lib opencv_photo2410.lib opencv_stitching2410.lib opencv_superres2410.lib opencv_ts2410.lib opencv_video2410.lib opencv_videostab2410.lib OJO: Observe que las bibliotecas para DEBUG tienen una letra "d" antes del ".lib".
No repitan las bibliotecas para compilar DEBUG junto con las de compilar RELEASE porque aparecerán símbolos definidos dos o más veces.
También sugiero tener cuidado con las referencias externas, establecer el punto de entrada en el Vinculador y no dejar de incluir ninguna biblioteca que vayan a necesitar.
NOTA: Estoy trabajando con la versión Visual Studio 2013 Ultimate.
|
|
|
En línea
|
|
|
|
|
|