मैं स्रोत डीआईआर से बिल्ड डीआईआर तक मेकफ़ाइल प्रोजेक्ट की प्रतिलिपि बनाने के लिए स्कैन प्राप्त करने की कोशिश कर रहा हूं और libmoo.a का उत्पादन करने के लिए कुछ आदेश चलाता हूं, लेकिन मैं एक निर्भरता चक्र त्रुटि में चल रहा हूं। विवरण का पालन करें:स्कॉन्स: निर्भरता चक्र?
./SConstruct:
env = Environment()
Export('env')
dirs = ['.']
variant_dir = 'build'
for dir in dirs:
SConscript(dir + '/' + 'SConscript', variant_dir=variant_dir + '/' + dir, duplicate=0)
./SConscript:
import os
Import('env')
env.Command(env.Dir('moo2').abspath, env.Dir('#moo').abspath, ["echo copying moo to the build dir", Copy("$TARGET", "$SOURCE")])
env.Command(env.Dir('moo2/Makefile').abspath, env.Dir('moo2').abspath, 'echo would run moo2.configure')
moolib = env.Command(env.Dir('moo2/libmoo.a').abspath, env.Dir('moo2/Makefile').abspath, 'echo would run make')
Default(moolib)
त्रुटि चल SCons:
scons: *** Found dependency cycle(s):
build/moo2/Makefile -> build/moo2 -> build/moo2/Makefile
build/moo2/libmoo.a -> build/moo2 -> build/moo2/Makefile -> build/moo2/libmoo.a
इसके अलावा .abspath का उपयोग किए बिना की कोशिश की, लेकिन वह shouldn कोई फर्क नहीं पड़ता, है ना?
मैं किसी भी चक्र नहीं दिख रहा है:
- निर्माण/moo2/libmoo.a निर्माण की आवश्यकता है/moo2/Makefile
- निर्माण/moo2/Makefile की आवश्यकता है निर्माण/moo2
- निर्माण/moo2 की आवश्यकता है (स्रोत /) moo
स्कॉन्स चक्र को कैसे देख रहा है? ऐसा लगता है कि बिल्ड/moo2/मेकफ़ाइल बिल्ड/moo2/libmoo.a पर निर्भर करता है, जो कि मैं निर्दिष्ट नहीं करना चाहता हूं।
उससे संबंधित सभी सुझावों का भी स्वागत :-)
पोस्ट के लिए धन्यवाद। बहुत कुछ फ़ाइलों को मेरी संस्करण निर्देशिका में कॉपी करें, दो आदेशों के साथ एक स्कॉन्स्क्रिप्ट फ़ाइल मेरे लिए काम करती है: आयात ('env') env.Install ('', ग्लोब ('# कर्नेल/*। Cl')) – NoahR