thể trùng lặp:
GNU Makefile rule generating a few targets from a single source fileGNU thực hiện: Nhiều mục tiêu trong một quy tắc đơn
Nếu tôi có một quy tắc Makefile như thế này:
a b c:
echo "Creating a b c"
touch a b c
output: a b c
cat a b c > output
và tôi chạy make -j9 output
làm cho thấy 3 phụ thuộc (a, b, c), tìm cách tạo ra chúng: (quy tắc "a b c" ở trên), nhưng điều gì xảy ra tiếp theo? Nếu nó không nhận ra rằng quy tắc "a b c" chỉ cần chạy một lần để tạo ra tất cả 3 mục tiêu?
Đây là những gì làm cho thực sự thực hiện:
[[email protected] test]$ make -j9 output -n
echo "Creating a b c"
touch a b c
echo "Creating a b c"
touch a b c
echo "Creating a b c"
touch a b c
cat a b c > output
[[email protected] test]$
Các công thức tương tự được chạy 3 lần, một lần cho mỗi phụ thuộc vào quy tắc "đầu ra"!
Có ai biết tại sao ứng dụng này hoạt động theo cách này không?
Related: http: // stackoverflow.com/questions/3016258/tạo-nhiều mục tiêu-sử dụng-đơn-hành động-quy tắc và http://stackoverflow.com/questions/2973445/gnu-makefile-rule-generating-a-few-targets-from-a- single-source-file – krlmlr