Qt: après l’installation de l’échec VS2012 LNK1123 lors de la conversion en COFF

Après avoir installé VS2012, mon projet Qt ne comstack plus plus (avoir VS2010 et VS2012 sur mon ordinateur). Message: LNK1123: failure during conversion to COFF: file invalid or corrupt . C’était bien avant avec VS2010 seulement.

Pour l’environnement VS2012, il est recommandé de (voir SO ici ):

  1. Comstackr avec Enable Incremental Linking NO
  2. Désinstallez .net 4.5

Comme je n’utilise pas Qt en combinaison avec VS2012 (donc pas de plug-in), je ne peux pas configurer le projet comme indiqué . Je ne peux pas non plus désinstaller .net 4.5 (nécessaire pour un autre projet).

Y a-t-il une chance de résoudre le problème? Quelques questions connexes que j’ai

  1. Serait-ce une solution à comstackr avec le compilateur VS2012 C ++? Ici, il est dit que j’aurais besoin d’une compilation de Qt 5 pour cela – j’aimerais éviter un tel problème
  2. Dois-je mettre à jour Qt?
  3. Ou existe-t-il un moyen de simplement Incremental Linking to off comme dans un projet VS? Où devrais-je définir les parameters de construction (capture d’écran ci-dessous)?

Win 7, x86 QtCreator 2.5.2 Qt 4.8.1 VS2012 Ultimate avec Update 1, VS2010 toujours installé

Paramètres de compilation du projet

— Modifier —

J’ai vérifié, les chemins sont toujours à VS2010 et il n’y a pas de chemin .net 4.5 inclus.

Les chemins

– Edit 2 – à partir du commentaire de HP

Au moins, j’ai essayé avec mon logiciel anti-virus désactivé. Même problème. De plus, j’ai vérifié d’autres projets Qt plus petits (je suis un codeur Qt sporadique, je n’ai donc pas beaucoup d’expérience dans ce domaine). Ils comstacknt. De même, tous mes sous-projets du projet Qt concerné sont compilés, seule la dernière partie (interface graphique, utilisant tous les sous-projets) échoue avec l’erreur ci-dessus.

— Un pas en avant —

Dans mon fichier .pro , j’utilise les lignes suivantes pour obtenir un DEFINE avec la version hg , en l’utilisant depuis des lustres.

 VERSION = $$system(P:/Tools/TortoiseHg/hg parents --template '{latesttag}+{latesttagdistance}') --- $$system line seems to be the line causing the COFF issue, WHY??? DEFINES += VERSION=\\\"$$VERSION\\\" 

En prenant cela, j’ai pu recomstackr sans l’erreur COFF. Mais l’application est tombée en panne à cause de certaines bibliothèques mixtes 4.8.0 / 4.8.1. Ensuite, j’ai parcouru tous les sous-projets et trouvé des configurations de construction dupliquées. Parfois, j’ai eu les mêmes entrées deux fois, parfois manquantes. Corrigé eux, l’application s’exécute maintenant (toujours sans la balise de version).

Construire des configs

Vérifié le commentaire de hg sur CMD , semble être OK.

 >P:/Tools/TortoiseHg/hg parents --template '{latesttag}+{latesttagdistance}' '0.8.902+1' 

Alors, pourquoi cela entraîne-t-il l’erreur COFF et pourquoi les configurations gâchées? . Je suppose que je deviens trop vieux pour cette merde.

Tous les crédits à ba__friend pour la suggestion . La raison en est le mauvais cvtres.exe comme décrit ici. Désactivez l’ancien et tout va bien (du moins dans mon cas particulier).

J’avais ce problème. Dans mon cas, la raison était d’installer Visual Studio 2012 sur une machine qui possédait déjà Visual Studion 2010. Je ne pouvais pas non plus exécuter de projets C ++ dans les deux Visual Studios (erreur identique). Il y a trois solutions:

  1. Solution temporaire: utilisez le modificateur de version au lieu de Debug, l’application s’exécute, mais aucun débogage n’est disponible.
  2. Téléchargez et installez Qt MinGW au lieu de la version VS (taille deux fois)
  3. (Recommandé) Installez / réinstallez le SP1 de Visual Studio 2010.

Bon codage!