2012-04-01 17 views
7

Tôi có một Makefile đơn giản:làm [1]: Lỗi Bước vào thư mục nhắn

default: 
    @make build 
    @make run 

build: 
    @javac Test.java > /dev/null 

run: 
    @java Test 

Trong biên soạn, làm cho kết quả đầu ra:

make[1]: Entering directory `<current directory'> 
... 
make[1]: Leaving directory `<current directory'> 

tôi cần thực hiện để xây dựng mà không cần in những thông điệp này. Có ai biết vấn đề gì hay làm thế nào để ngăn chặn những thông điệp này?

Cảm ơn


chỉnh sửa: điều này xảy ra không phụ thuộc vào mã. ví dụ. nó xảy ra với:

class Test { 

    public static void main(String[] args) { 
     System.out.println("HELLO WORLD"); 
    } 
} 
+1

mã của bạn là gì? Chúng tôi không thể đoán được .... – Neal

+0

Bất kỳ lý do gì để biên dịch Java bằng cách thực hiện? (Tôi đoán là "bởi vì người hướng dẫn đã nói vậy") – millimoose

+0

@Neal xin lỗi, đã chỉnh sửa để bao gồm đoạn mã. và Inerdial, chúng tôi sử dụng thực hiện bởi vì sự lựa chọn ngôn ngữ là tùy thuộc vào chúng tôi. Các giảng viên chỉ cần một cách thống nhất để gọi tất cả các chương trình đa dạng của chúng tôi. – noobler

Trả lời

11

Thay đổi make-make -s:

default: 
    @make -s build 
    @make -s run 

Vẫn còn tốt hơn:

default: 
    @$(MAKE) -s build 
    @$(MAKE) -s run 

Thậm chí tốt hơn:

default: run 

build: 
    @javac Test.java > /dev/null 

run: build 
    @java Test 
+0

+1 cho giải pháp 'thậm chí tốt hơn'. –

+0

Thậm chí tốt hơn nữa. thêm thẻ .PHONY vào mục tiêu xây dựng và chạy. –

10

make -s cũng ngăn chặn các thông báo makefile khác cũng có thể quan trọng đối với các nhà phát triển. Nếu bạn muốn ngăn chặn "Bước vào/Rời thông điệp thư mục" chỉ chạy make với

make --no-print-directory

+0

> Tính năng này chỉ hoạt động với GNU Make. [Thủ thuật làm im lặng] (http://www.gnu.org/software/automake/manual/html_node/Tricks-For-Silencing-Make.html). – Sharadh

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