2009-12-22 12 views
0

Je construis un produit multiplateforme et l'une des exigences concerne Windows (win32, AMD64 et IA61). Le produit est relativement simple CLI mais nous avons une équipe de construction séparée qui vérifie le code de CVS et construire dans des environnements de construction distincts. Je suis capable de construire avec succès (en utilisant Visual C++ 2005) dans une plate-forme (machine AMD). Mais une fois que je vérifie le code, vérifiez la construction échoue.Problèmes de construction avec le projet Visual C++ après l'archivage et la vérification à partir de CVS

La cause de l'échec de la construction est due au fait que les chemins d'accès aux bibliothèques d'inclusion sont spécifiés de manière incorrecte dans les feuilles de propriétés. Plus précisément, le dossier du fichier de sortie sous le Linker dans les pages de propriétés est spécifié à tort. Ces bibliothèques sont donc construites dans un dossier différent de celui où les autres projets les attendent. Cependant, avec la source, je vérifie aussi dans les fichiers .sln (et plus tard les fichiers .vcproj) aussi à chaque fois. De plus, si j'ouvre le fichier .sln dans le dossier où la construction ne réussit pas, il n'y a pas de différence entre celle que je pourrais construire avec succès (pré-enregistrement). En fait, en utilisant Windiff je ne pouvais pas voir de différence entre les deux dossiers de construction (à l'exception de certains fichiers journaux .ncb et cvs).

Donc, une idée de ce qui se passe? Où VC++ 2005 prend-il les répertoires d'inclusion prennent-ils le chemin de dossier de sortie de sinon .sln? CVS interfère-t-il d'une manière ou d'une autre avec le processus? Tout ce que je pourrais essayer d'autre.

Merci d'avance.

+0

Oui. J'ai également vérifié les fichiers .vcproj. Comme je l'ai mentionné, Windiff ne montre aucune différence entre les dossiers. – user88595

+0

Juste pour clarifier la requête de base que j'ai, est-ce que VC++ stocke les données de la feuille de propriétés pour une solution dans le fichier .sln seulement? Ou existe-t-il d'autres fichiers requis? – user88595

+0

Mise à jour-Si je copie le dossier à un autre endroit la construction fonctionne bien. Je suis presque convaincu que cela a quelque chose à voir avec les checkins/caisses de cvs. – user88595

Répondre

1

Juste pour mettre à jour le problème a été résolu. La cause première est que les fichiers .vcproj n'étaient pas vérifiés dans CVS !! C'est là que les paramètres individuels du projet ont été stockés (j'avais l'impression que cela se faisait dans les fichiers .sln).

0

Je pense que le problème peut être qu'après avoir changé les paramètres dans une configuration de construction (par exemple x86-Release) mais oublié de les changer pour une autre configuration (par exemple ia64-Debug), et quand la configuration change, avoir ce problème.

Une autre chose que je voudrais vérifier sur votre place est les dépendances de projet. Si ceux-ci sont configurés correctement, VS recherchera la sortie du projet exactement là où elle est sortie, même si vous changez le dossier de sortie.

+0

En ce qui concerne # 1, le problème se produit actuellement dans la même configuration (version | x64). Je vérifie en x64 et vérifie et reconstruis seulement x64. # 2 Les dépendances de projet sont les mêmes pour tous les projets. – user88595

0

Avez-vous des fichiers binaires archivés en ASCII? L'aller-retour vers et depuis CVS peut corrompre les fichiers binaires incorrectement marqués en ASCII car CVS effectue le traitement des caractères sur les fichiers ASCII (par exemple pour vous donner les codes de fin de ligne corrects pour votre système d'exploitation). La corruption peut se produire même dans un environnement entièrement Windows.

Voir la section Binaire dans le CVS FAQ pour plus d'informations.

+0

Je ne pense pas. Dans tous les cas, la raison de l'échec de la construction est que les bibliothèques dépendantes sont construites dans un autre dossier que celui spécifié dans le programme principal. – user88595