2010-06-03 43 views
19

Hạt nhân Linux (và các dự án khác bao gồm git) có các makefiles rất đẹp che giấu các cuộc gọi cc khổng lồ thành các từ viết tắt nhỏ đẹp.makefiles khá in

Ví dụ:

gcc -O2 -o cool.o cool.c -llib 
gcc -O2 -o neat.o neat.c -llib 

sẽ trở thành:

CC cool.c 
CC neat.c 

Đó là thực sự tốt đẹp nếu bạn có một dự án với một số lượng lớn các tập tin và cờ biên dịch dài. Tôi nhớ lại rằng điều này đã làm với việc ngăn chặn đầu ra mặc định và tạo một tùy chỉnh. Bạn làm nó như thế nào?

Trả lời

23

Bạn có thể thêm tiền trước @ vào cuộc gọi trong mục tiêu makefile.

ví dụ .:

%.o: %.c 
    @$(CC) $(CFLAGS) -c -o [email protected] $< 
    @echo "CC $<" 
+0

tuyệt vời! chính xác những gì tôi cần! – wickedchicken

+8

Nhân Linux của Makefile cho phép bạn quyết định có hiển thị lệnh biên dịch hay không (có thể hữu ích khi gỡ lỗi). Họ có điều kiện thiết lập 'Q = @' và sau đó viết lệnh như '$ (Q) $ (CC) ...'. Bây giờ bạn có thể chọn để thiết lập một lệnh bằng cách đặt 'Q =' –

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