Tôi đang cố gắng để có được SCons để sao chép một dự án Makefile từ thư mục nguồn để xây dựng thư mục và chạy một số lệnh để tạo libmoo.a, nhưng tôi đang chạy vào một lỗi chu kỳ phụ thuộc. Thông tin chi tiết theo:SCons: Chu kỳ phụ thuộc?
./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)
Lỗi chạy 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
Cũng đã cố gắng mà không sử dụng .abspath, nhưng shouldn rằng không quan trọng, phải không?
Tôi không thấy bất kỳ chu kỳ:
- build/moo2/libmoo.a đòi hỏi xây dựng/moo2/Makefile
- build/moo2/Makefile đòi hỏi xây dựng/moo2
- build/moo2 đòi hỏi (nguồn /) moo
Làm thế nào để thấy một chu kỳ? Dường như nghĩ rằng build/moo2/Makefile phụ thuộc vào build/moo2/libmoo.a, đó không phải là những gì tôi định chỉ định.
Bất kỳ lời đề nghị có liên quan cũng được chào đón :-)
Cảm ơn bài đăng. Quá đơn giản là sao chép một số tệp vào thư mục biến thể của tôi, một tệp SConscript có hai lệnh làm việc cho tôi: Nhập ('env') env.Install ('', Glob ('# kernels/*. Cl')) – NoahR