IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Bug VS2008 : Fichier source g�n�r� mais pas compil�


Sujet :

Visual C++

  1. #1
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Ao�t 2004
    Messages
    1 717
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 717
    Par d�faut Bug VS2008 : Fichier source g�n�r� mais pas compil�
    Bonjour!

    Note: j'utilise VS2008 Pro et Python 2.5

    Dans mon projet, j'ai un script python lanc� avant la compilation (pre-build event) qui (r�)g�n�re simplement un fichier cpp qui contient des constantes dont la valeur est toujours modifi�e (num�ro de version et timestamp).

    Or apparamment il y aurait une subtilit�e concernant la detection de changement de code source dans Visual Studio OU ALORS mon script python (tr�s simple pourtant) n'est pas correct.

    D'abord, le script python qui g�n�re le fichier (le contenu est g�n�r� auparavant) :

    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    # write the resulting code file
    	resultCodeFile = open( NR_VERSION_CPP_FILE, "w" )
    	resultCodeFile.write( resultCode )
    	resultCodeFile.close()

    Note: J'ai aussi essay� avec "w+" sans plus de succ�s.

    Donc, ce script g�n�re bien le fichier a chaque fois que je fais une build, quel que soit la fa�on de builder le projet (F5, build enti�re du projet etc) et quelque soit la configuration (Debug/Release).

    J'affiche les valeures des constantes g�n�r�es par le script au runtime.

    Or en testant tout a l'heure plusieurs fois, je me suis rendu compte que si je fais F5 pour lancer mon projet, puis si je modifie un cpp puis refait F5 (build incr�mentale ) , la valeur du timestamp (normalement chang� par la r�g�n�ration du cpp) n'a pas chang�.
    Si encore une fois je refais F5, l� la valeur a chang�.

    En observant le log de build, je me suis rendu compte que m�me si le fichier est effectivement chang� � toutes les build, il n'est pas forc�ment recompil� � chaque fois (du moins en incr�mental).
    A priori, on dirait bien que Visual Studio (ou alors cl seulement?) n'a pas pris en compte le changement de contenu du fichier lors de la build incr�mental, mais reprends en compte le changement a la prochaine.

    De loin, je dirais que soit a) Visual Studio se base sur une information pas tout a fait pr�cise concernant mon fichier g�n�r�, soit b) mon script python ne ferme pas immediatement le fichier g�n�r� une fois termin�, laissant VS se baser sur l'ancien etat du fichier et donc VS consid�re qu'il n'y a pas eu de changement?

    Dans tous les cas, j'ai reproduis le probl�me dans un petit projet (archive ci-joint).

    Pour voir le bug il faut :

    1) Compilez le projet une premi�re fois. Vous noterez que le contenu de Test.cpp a chang�, il contient une constante avec une valeur timestamp correspondant au moment ou le script python (pre_build.py) s'est execut�;
    2) Lancez l'application : elle affiche le timestamp. Comparez avec le contenu g�n�r� dans le cpp : c'est bien la m�me valeur;
    2) Ajoutez une instruction dans main.cpp ou d�commentez la ligne comment�e.
    3) Faites F5 pour lancer une build incr�mentale et lancer l'application dans la vol�e : le timestamp qui s'affiche correspond au m�me que dans 2), pourtant le fichier cpp a bien �t� modifi� et vous pouvez comparer les valeurs : elles sont diff�rentes (le contenu du cpp ayant logiquement un timestamp sup�rieur).

    Ce probl�me n'est pas grave en soit parceque je ne compte pas distribuer de version qui ne soit pas enti�rement recompil�e, mais c'est inqui�tant, non?
    J'esp�re que le probl�me viens du script...

    Est-ce que quelqu'un sait o� est le probl�me ou bien un moyen de le contourner? (forcer la build syst�matique d'un cpp par exemple?)
    Fichiers attach�s Fichiers attach�s

  2. #2
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Ao�t 2004
    Messages
    1 717
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 717
    Par d�faut
    Personne n'a remarqu� ce probl�me? O__o? (au passage, je ne trouve plus l'adresse sur site de bugtracking de visual studio...)


    Est-ce que quelqu'un ici sait comment forcer la build syst�matique d'un cpp?

  3. #3
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Ao�t 2004
    Messages
    1 717
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 717
    Par d�faut
    Apr�s diverses investigations, il semblerait que VS fasse la v�rification des modifications des fichiers � compiler AVANT d'executer les commandes pre-build !

    Une solution possible (et effectivemetn efficace) est d'ajouter un script post-build qui d�truit l'obj du fichier qui est g�n�r� en pre-build, forcant VS a toujours le recompiler.


    Bon a savoir

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 10/02/2009, 18h25
  2. R�ponses: 1
    Dernier message: 04/12/2008, 23h42
  3. Erreur "Fichier source n'a pas pu etre compil�"
    Par gre1307 dans le forum Dev-C++
    R�ponses: 1
    Dernier message: 31/01/2008, 20h22
  4. "Le fichier source n'a pas encore �t� compil�"
    Par laurrrette dans le forum OpenCV
    R�ponses: 2
    Dernier message: 07/08/2007, 09h07
  5. Download fichier ok local mais pas en "web"
    Par Mystic eyes dans le forum Serveurs (Apache, IIS,...)
    R�ponses: 1
    Dernier message: 20/06/2006, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo