2009-07-28 40 views
93

Tôi đang cố gắng hiểu sự khác biệt giữa 'gmake' và 'make'?Sự khác biệt giữa gmake và thực hiện là gì?

Mở hộp linux của tôi họ là giống hệt nhau:

% gmake --version 
GNU Make 3.81 
Copyright (C) 2006 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. 
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE. 

% make --version 
GNU Make 3.81 
Copyright (C) 2006 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. 
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE. 

Tôi đoán đây là không giống nhau trên tất cả các nền tảng? Có lý do chính đáng để sử dụng cái này với cái kia không?
Có một số ý nghĩa lịch sử về lý do tại sao có hai tên?

+4

Điều này không thuộc về serverfault; đó là câu hỏi về chuỗi công cụ – bdonlan

Trả lời

125

'gmake' đề cập cụ thể đến GNU. 'make' dùng để chỉ thực hiện mặc định của hệ thống; trên hầu hết các bản phân phối Linux mà GNU tạo ra, nhưng trên các bản Unix khác, nó có thể ám chỉ một số việc thực hiện khác, chẳng hạn như BSD, hoặc thực hiện các bản phối hợp thương mại khác nhau.

Ngôn ngữ được chấp nhận bởi GNU tạo ra là một phần phụ của ngôn ngữ được hỗ trợ bởi tiện ích truyền thống.

Bằng cách sử dụng 'gmake' cụ thể bạn có thể sử dụng GNU làm cho tiện ích mở rộng mà không lo lắng về việc chúng bị hiểu sai bởi một số triển khai thực hiện khác.

+16

câu trả lời hay. lưu ý rằng cùng một quy ước sau cho gcc và cc –

+0

Xin cảm ơn các bạn, điều này có ý nghĩa! Cảm ơn cho thanh toán bù trừ này lên. –

+4

Nó cũng áp dụng cho các gtools khác: gawk và gtar, chẳng hạn, là những người đi trên Solaris. –

2

Thông thường "đối diện" của gmake là BSD make, có xu hướng là make trên các hệ thống BSD, không có gì đáng ngạc nhiên. Nếu bạn muốn xem những gì BSD tạo ra là như thế, trên các dẫn xuất Debian, nó có sẵn như là apt-get install pmake.

+3

Tại sao 'pmake' lại gây ngạc nhiên cho BSD? >. < – stackoverflowuser95

+0

Việc tạo mặc định là không đáng ngạc nhiên khi BSD thực hiện trên các hệ thống BSD. –

9

Trên hệ thống của tôi có sự khác biệt (gmake là liên kết mềm để thực hiện):

-> ls -l $(which gmake make) 
lrwxrwxrwx 1 root root  4 Jun 5 2007 /usr/bin/gmake -> make 
-rwxr-xr-x 1 root root 168976 Jul 13 2006 /usr/bin/make 

gmake là viết tắt của GNU thực hiện. Có nhiều cách triển khai khác nhau. Trên máy Linux, hầu như chắc chắn sẽ làm cho GNU và GNU sẽ làm cho cuộc sống của người dùng trở nên dễ dàng hơn với gmake.

-1

Dường như, GNU tạo là practically universal now, vì vậy hầu như không bao giờ có sự khác biệt.

+0

Trừ khi một phiên bản khác nhau của thực hiện được sử dụng trong trường hợp đó nên có một sự khác biệt. –

+4

Vâng ... bạn cần phải nói - GNU làm là thực tế phổ quát hiện nay ON hệ thống LINUX. Giả sử BSD đang sử dụng công cụ tạo riêng của nó có cú pháp khác, v.v. – Alex

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