5

Estoy tratando de utilizar un evento de pre-construcción en Visual Studio (VS 2005 para ser específicos) para ejecutar un script en Python que generará automáticamente un .cpp archivo. El problema que me estoy encontrando es que el compilador no parece saber que este archivo está sucio y necesita ser reconstruido hasta que después de la compilación haya finalizado, lo que significa que necesito construir la solución dos veces - una vez para generar este archivo, y luego una vez más para que este archivo realmente se compile.auto-generación de código C++ en un evento de pre-construcción utilizando Visual Studio

sin saber mucho sobre el funcionamiento interno del compilador de C++, mi suposición ingenua es que hace una lista de archivos sucios que necesitan volver a compilar antes el evento de pre-construcción se ejecuta, por lo que se echa de menos esta AUTOGENERADAS archivo, ya que no se ha tocado hasta después del evento de preconstrucción.

¿Hay alguna manera de informar al compilador que se necesita para volver a compilar este archivo si el evento de pre-construcción que cambia?

+0

que he tenido este problema también y nunca fue capaz de resolverlo. Intenté configurar la fecha en el pasado como parte del evento de preconstrucción, intenté establecer fechas en otros archivos y eliminar archivos de objetos ya compilados, y nada parecía funcionar. – SoapBox

+0

Todo lo que he propuesto es hacer que el ejecutable de precompilación detecte que ha cambiado algo. Ver esta pregunta relacionada mío: http://stackoverflow.com/questions/528494/use-domain-specific-language-files-inside-c-project –

+0

En realidad el ejecutable que me refiero se utiliza en una regla de generación personalizada –

Respuesta

5

utilizo msvc 6.

Try ...

Put the python script into the project 
give it a custom build step that invokes python on it, 
to create the cpp file. 

Add the cpp file to your project and do a rebuild all. 

Así es como lo hacemos con el Oracle Pro * C preprocesador. Funciona bien.

+0

He hecho algo similar a esto con las transformaciones T4 en VS2008 y funciona muy bien. – MrSlippers

2

No es algo que he hecho en mi vida, pero usted podría intentar invocar el compilador (cl.exe) directamente desde el evento de pre-construcción.

Cuestiones relacionadas