C ++: LINK: debug \ XXXXX.exe introuvable construit ou non par le dernier maillon supplémentaire; effectuer le lien complet

StackOverflow https://stackoverflow.com/questions/1554984

  •  20-09-2019
  •  | 
  •  

Question

En utilisant Visual Studio 2008 SP1,
Cette ligne:

LINK : debug\XXXXX.exe not found or not built by the last incremental link; performing full link

apparaît chaque fois que je compilez le projet, peu importe la taille d'un changement que je fais.
Quelles pourraient être les raisons?

Était-ce utile?

La solution 2

Il se trouve que le problème, il fixe l'auto si j'ajoute /INCREMENTAL à la ligne de commande de liaison. Ceci en dépit du fait que le comportement par défaut en fonction des documents est de permettre la liaison incrémentielle.

Etrange.

Autres conseils

question ancienne, mais juste au cas où quelqu'un est toujours un problème (et il est ..).

lien incrémental est incompatible avec la génération de fichier manifeste (Proj opte> Linker> Fichier Manifest> Générer Manifest: Oui). En effet, la génération modifie manifeste exe / dll donc éditeur de liens doit faire la liaison complète.

Il y a quelques solutions de contournement, pour plus de détails: http://chadaustin.me/2009/05/incremental-linking- et-embedded-manifeste /

Solution temporaire (et plus facile / rapide) est de désactiver la génération manifeste au cours du développement et lui permettre de nouveau dans la phase de libération. Bien que cela désactive XP / Vista style graphique pour l'application (contrôles ressemblent en mode « classique »).

tir vraiment dans l'obscurité, mais ...

Avez-vous le déplacez XXXXX.exe d'où il est construit à un autre endroit? Le point de l'ensemble d'un lien supplémentaire est de changer un exe existant. S'il n'y en a pas, il sera difficile ...

Une autre raison possible est que le fichier a été changé après la construction (probablement par un autre outil) ...

Toutes les raisons sont énumérées dans l'élément d'aide pour / INCREMENTAL :

  

En outre, LINK effectue un complet   lien si l'un des éléments suivants   situations se produisent:

     

Le fichier état incrémental (.ilk) est   manquant. (LINK crée un nouveau fichier .ilk   en vue de la suite   la liaison incrémentielle.)

     

Il n'y a pas l'autorisation d'écriture pour la   fichier .ilk. (LINK ignore le fichier .ilk   et des liens nonincrementally.)

     

Le fichier de sortie .exe ou .dll est   manquante.

     

L'horodatage du .ilk, Exe, ou   .dll est modifié.

     

Une option LINK est modifiée. La plupart LINK   options, lorsqu'ils sont modifiés entre construit,   faire un lien complet.

     

Un fichier d'objet (OBJ) est ajouté ou   omis.

     

Un objet qui a été compilé avec le   Option / Yu / Z7 est modifiée.

  1. Télécharger procmon de Microsoft.
  2. exécuter, mettre en place un filtre de sorte que vous êtes à la recherche d'accès au chemin qui contient votre nom .exe.
  3. Faire un lien.
  4. Voir quel trouble il est d'avoir - t-il trouver, faut-il enregistrer une erreur sur l'ouvrir. Procmon enregistre chaque fichier ouvert, lire, à proximité, etc. Si elle obtient une erreur, il l'enregistrer.
  5. Assurez-vous également qu'il peut trouver le fichier .ilk -. Je pense qu'il a besoin de cela aussi

(ALSO dans l'obscurité) Une raison possible est que vous utilisez un en-tête de projet à l'échelle faisant référence à la macro __DATE__. Mais dans ce cas, vous verriez une recompilation complète aussi bien (avez-vous?)

Dans mon cas, j'ai eu hier erreur.

VS ensemble code generation > runtime Library à Multi-threaded Debug DLL (/MDd) au lieu de Multi-threaded Debug (/MTd).

Si je recrée ce nouveau projet de mauvais réglages se produit de nouveau. Je passe manuellement /Mtd, aucune erreur se produit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top