Sau khi vật lộn với VariantDir trong một thời gian (nó đã không làm bất cứ điều gì ở tất cả), tôi đã kết thúc bằng variant_dir
tham số trong các cuộc gọi cấp SConscript đầu, gây ra tất cả các kết quả đầu ra xây dựng hạ lưu kết thúc trong một song song ' xây dựng 'cây: SConscript(['subdirs/SConscript'], variant_dir='build', duplicate=0)
Cấu trúc xây dựng của tôi là cấu trúc phân cấp của các bản ghi trong tiểu mục/thư mục con, v.v. Với cuộc gọi này, các kết quả đầu ra sẽ kết thúc trong các tiểu trình xây dựng/tiểu thư ở cùng cấp như trong nguồn.
Điều này ăn lên một cấp, mặc dù (subdirs), và sử dụng "../build" không giúp đỡ. Giải pháp là phải có một tập tin SConscript cùng cấp như SConstruct và gọi SConscript(['SConscript'], variant_dir='build', duplicate=0)
Xem thêm Force Scons output (exe, obj, lib & dll) to specific build directory - nó có một câu trả lời tương tự
Nguồn
2014-08-21 19:47:03
vấn đề với 'VariantDir' là gì? Bạn đã thử sử dụng 'duplicate = 0'? –
Để sử dụng 'Biến thể 'bạn phải bán toàn bộ linh hồn của mình. Điều đó có nghĩa là bạn phải làm mọi thứ trong 'Biến thể 'hoặc không có gì. Điều tôi và rất nhiều người khác muốn là chỉ đặt ** công cụ ** được tạo vào thư mục xây dựng chứ không phải mọi thứ. – abergmeier
Đó không phải là những gì 'duplicate = 0' làm gì? Từ tài liệu: Nhân đôi cây nguồn có thể bị tắt bằng cách đặt đối số trùng lặp thành 0 (số không). Điều này sẽ gây ra scons để gọi các nhà xây dựng bằng cách sử dụng tên đường dẫn của các tập tin nguồn trong src_dir và tên đường dẫn của các tập tin có nguồn gốc trong variant_dir. –