2012-12-06 27 views
9

मेरे समस्या यह है जब भी मैं Makefile मैं का उपयोग कर संकलित करने के लिए निम्न प्रयास करें:Makefile: घड़ी तिरछा का पता चला

make: Warning: File `Board.c' has modification time 1.3e+03 s in the future 
gcc -Wall -c -Wvla -lm Board.c -o Board.o 
gcc -Wall -c -Wvla -lm PlayBoard.c -o PlayBoard.o 
gcc -lm ErrorHandle.o Board.o PlayBoard.o -g -o PlayBoard 
make: warning: Clock skew detected. Your build may be incomplete. 

मेरे Makefile है:

CC = gcc 
FLAGS = -Wall -c -Wvla 

PlayBoard: ErrorHandle.o Board.o PlayBoard.o 
    $(CC) -lm ErrorHandle.o Board.o PlayBoard.o -g -o [email protected] 

PlayBoard.o: PlayBoard.c Board.o 
    $(CC) $(FLAGS) -lm PlayBoard.c -o [email protected] 

Board.o : ErrorHandle.o Board.c Board.h 
    $(CC) $(FLAGS) -lm Board.c -o [email protected] 

.PHONY : clean 

clean: 
    rm -f Board.o PlayBoard.o PlayBoard 

all : PlayBoard 

आपकी मदद के लिए धन्यवाद। यदि संकलन एक एनएफएस माउंट और एनएफएस सर्वर की घड़ी पर स्थित सूत्रों आगे ग्राहक की घड़ी चलाता संकलन कर

+3

चेक 'Board.c' के संशोधन समय, ऐसा लगता है कि आप किसी अन्य स्रोत से इस कॉपी कर लिया होगा कि जब निर्माण के समय में अपने machin के आगे है। वर्तमान समय में संशोधन समय सेट करने के लिए एक समाधान 'टच बोर्ड.c' चलाया जा सकता है –

+1

शायद नेटवर्क स्थान पर संग्रहीत स्रोत हैं? – stijn

+1

रिमोट लिनक्स मशीन पर संकलन सी ++ के संभावित डुप्लिकेट - "घड़ी की कमी का पता चला" चेतावनी] (http://stackoverflow.com/questions/3824500/compiling-c-on-remote-linux-machine-clock-skew-detected- चेतावनी) – skrrgwasme

उत्तर

26

टिजिन संदेश "घड़ी तिरछा का पता चला" द्वारा एक टिप्पणी में निरूपित किया जाता है के रूप में सबसे अधिक दिया जाता है।

+0

क्या इसका कोई समाधान है? मेरी स्रोत फाइलें एक एनएफएस सर्वर पर हैं जो थोड़ी आगे प्रतीत होती है। मेरी देव मशीन और एनएफएस सर्वर अलग-अलग डोमेन पर वीएम हैं इसलिए मुझे घड़ियों को सटीक नहीं मिल सकता है – TSG

+0

@ टेलियम: आप नियमित रूप से दोनों मशीनों पर एक एन (एरवर्क) टी (ime) पी (रोटोकॉल) क्लाइंट चलाने के लिए चाहते हैं? – alk

3

मैंने इसे विश्वविद्यालय के कंप्यूटरों में से कुछ पर कुछ काम करते समय ग्रहण में कुछ बार देखा। मेरा डेटा ड्राइव नेटवर्क ड्राइव था और नेटवर्क ड्राइव और स्थानीय मशीन के बीच घड़ी का अंतर बंद था।

जाओ:

स्थानीय मशीन (सी ड्राइव) पर किसी स्थान पर अपना कार्यक्षेत्र स्विचिंग समस्या

23

सम्भावित समाधान touch करने के लिए समय-टिकटों अवगत कराने के लिए स्रोत पेड़ में हर फ़ाइल है तय उप पेड़ की जड़ एक ऐसा करने के लिए:

find . -exec touch {} \; 

फिर make clean और संकलन का प्रयास करें।

+0

हर बार काम करता है। धन्यवाद! – steadweb

+1

ऐसा करने से आप हमेशा सभी चीजों को संकलित करते हैं, न केवल केवल उन स्रोत फ़ाइलों को जिन्हें कोड परिवर्तनों के कारण छुआ गया था। कम से कम एक बड़े कोड बेस के लिए यह शायद आप नहीं चाहते हैं। – alk

1

यह संदेश आमतौर पर एक संकेत है कि आपकी कुछ फ़ाइलों में वर्तमान सिस्टम समय के बाद संशोधन समय है। चूंकि एक ऑब्जेक्ट फ़ाइल को हाल ही में अपनी ऑब्जेक्ट फ़ाइल से संशोधित किया गया है या नहीं, यह स्थिति जांच कर एक संकुचित बिल्ड करने के दौरान संकलित करने के लिए कौन सी फाइलें संकलित करती हैं, यह स्थिति अनावश्यक फ़ाइलों को निर्मित या खराब कर सकती है, आवश्यक फ़ाइलों को नहीं बनाया जा सकता है।

2

प्रकार निम्न आदेश

find -exec touch \{\} \; 
+2

आगे स्पष्टीकरण के बिना ओपी का नेतृत्व अवांछित चीजों के लिए कर सकता है! हालांकि सही दिशा में इशारा करते हुए यह गुम पक्ष की जानकारी के कारण, एक अच्छा जवाब नहीं है।समस्या को समझाने के बेहतर तरीके के लिए * sblob * का उत्तर देखें: http://stackoverflow.com/a/19016418/694576 – alk

संबंधित मुद्दे