2012-02-14 34 views
6

Tôi đang cố gắng hiểu một chuỗi dòng lệnh đơn giản thực hiện Javac và chuyển nó một số đối số đơn giản. Dòng lệnh hoàn chỉnh là:

javac -d $(OUTPATH) -sourcepath $(SOURCEPATH) $< 

Mọi thứ trong dòng này đơn giản và dễ hiểu đối với tôi ngoại trừ mã thông báo cuối cùng: $<.

Các mã thông báo này có nghĩa là gì?

BỔ SUNG: Thật vậy, người nhận xét là chính xác. Dòng này xảy ra trong một makefile. Rõ ràng với tôi bây giờ, nhưng không phải khi tôi viết câu hỏi này, rằng một makefile được chuyển đến make và không phải là một kịch bản trình bao.

Xin lưu ý: What do $< and [email protected] represent in a Makefile? cũng thảo luận vấn đề này (Tôi không thấy khi tôi tìm câu hỏi trước về điều này).

+2

Đây có phải là tệp makefile không? –

+0

Tôi không nghĩ đây là cú pháp bash đúng. – asf107

+0

Tôi đoán rằng đó là vì $ jordanm

Trả lời

7

Điều này trông giống như một cái gì đó từ một makefile, không phải là một dòng lệnh. Trong trường hợp đó, $< mở rộng đến điều kiện tiên quyết đầu tiên của mục tiêu hiện tại. Tức là, tệp .java mà mục tiêu .class phụ thuộc vào.

Các vấn đề liên quan