2010-10-22 10 views
1

Scénario 1:make ne voit pas les changements?

J'ai extrait un projet et apporté des modifications à un fichier source, puis j'ai créé et affiché les modifications.

Scénario 2:

J'ai vérifié à nouveau le projet répertoire différent (quelques raisons), a copié le fichier source modifié ici, et ne faire et rien ne se passe, si je lance le programme, je ne vois pas mes modifications, make ne voit pas que j'ai fait de modifier ce fichier source

Répondre

3

make utilise les horodatages des fichiers pour déterminer ce qu'il faut construire. Peut-être que votre système de contrôle de version vérifie tous les fichiers avec l'heure actuelle. Lorsque vous copiez votre source, il a un temps dans le passé, ce qui fait make pense que le fichier objet (probablement dans votre caisse) est plus récent que votre source.

Si tel est le cas, vous pouvez utiliser touch pour définir l'horodatage d'un fichier.

0

ok, je viens de toucher la source copiée (modifiée) et maintenant faire reconnaître les changements.

1

Ajout des réponses existantes:

Pour toucher les cibles, vous pouvez utiliser l'option -t ou --touch de faire. Cette option ne fera pas la cible mais la touchera juste pour que la prochaine fois que vous appelez make, la cible sera faite.

Vous pouvez également utiliser l'option -B ou --always-make qui rendra la cible inconditionnelle quelle que soit la modification de sa (ses) fonction (s) dépendante (s).

0

Si vous avez utilisé cp pour copier les fichiers, les options -a --archive -p --preserve préservent l'horodatage. Ce n'est pas ce que tu veux!

option Ajouter --no-preserve=timestamps

cp [options] --no-preserve=timestamps .....