Makefile chính xác là gì và làm thế nào chúng ta có thể tạo một cái?


8

Tôi biết đây là một câu hỏi ngớ ngẩn, nhưng vì tôi đang rất cố gắng để học linux một mình, tôi cần một số trợ giúp từ các bạn.

Tôi đã tìm thấy nhiệm vụ này trên internet và tôi đang cố gắng giải quyết nó nhưng tôi không hiểu chính xác làm thế nào tôi có thể sử dụng tệp tạo tệp trong linux và làm cách nào để tạo chúng.

Giả sử thư mục làm việc in của tôi là /home/george/Documents

Tôi muốn tạo một tệp thực hiện như sau:

  1. Hiển thị thông báo như sau "xin chào, hôm nay là CN". CN đến từ Chủ nhật. Vì vậy, tôi phải sử dụng datelệnh trong tệp make này để chỉ hiển thị ba chữ cái đầu tiên.
  2. nén /etc/hoststrong /tmpsử dụng gzip(có lẽ ở đây nên là một cái gì đó như

    gzip -c SOURCE DESTINATION # ?? 
    

Chúc mừng


Makefiles có mặt để chọn lọc xây dựng các tệp đối tượng lỗi thời từ các tệp nguồn, trong một hoạt động phát triển phần mềm. Nó không có gì để làm với những gì bạn sẽ làm.
enzotib

Câu trả lời:


8

để trả lời câu hỏi của bạn, tôi không thể cung cấp cho bạn câu trả lời một dòng / đoạn vì nó liên quan đến mọi thứ. Đọc liên kết đầu tiên nó có mọi thứ bạn cần với các ví dụ.

Hướng dẫn tốt có thể giải thích mọi thứ về make


3
liên kết đầu tiên phải là: mrbook.org/blog/tutorials/make
Shahryar Saljoughi

mrbook.org/blog/tutorials/make hướng dẫn sử dụng mã c ++ đã lỗi thời và không còn biên dịch nữa. Xem câu hỏi này để hiểu và sửa chữa.
David

Liên kết đã chết.
ComputerSellectist

2

Makefile được sử dụng làm "bản đồ" để biên dịch chương trình C. Chúng hoạt động với maketiện ích, mô tả cách chương trình phải được biên dịch / liên kết để hoạt động chính xác một khi được chuyển thành tệp thực thi. Đối với các tác vụ UNIX / shell toàn cầu, bạn đang tìm kiếm các tập lệnh shell chứ không phải tệp thực hiện :)

Xem http://en.wikipedia.org/wiki/Make_(software)#Makefiles để biết thêm thông tin về makefiles và http://en.wikipedia.org/wiki/Shell_script để khám phá các tập lệnh shell.

Một kịch bản shell cơ bản cho những gì bạn đang cố gắng có thể là:

#!/bin/bash
echo "Hello world, today is $(date +%a)"
gzip -c SOURCE DESTINATION

Lưu trữ này trong một tập tin, và thực hiện nó bằng cách sử shell của bạn nhanh chóng ( bash myscript.sh, sh myscript.sh, ...). Bạn cũng có thể làm cho tập lệnh thực thi bằng cách sử dụng:

chmod +x myscript.sh

Và sau đó thực hiện nó với trình thông dịch mặc định của bạn với:

./myscript.sh

1
Tôi đang cố gắng tạo một tệp tạo tệp không phải là tập lệnh shell.
Adrian George

Sau đó, bạn phải phát triển một chương trình C thực hiện điều này và biên dịch nó bằng Makefile, nếu bạn muốn. Makefiles không thực thi các tác vụ Linux, chúng hướng dẫn biên dịch chương trình C, đó là một điều hoàn toàn khác.
John WH Smith

1
@JohnWHSmith Không có gì đặc biệt khi biên dịch các chương trình C. Makefiles có thể được sử dụng để thực hiện một loạt các nhiệm vụ. (Như đã nói, nhiều nhiệm vụ không phù hợp cho việc sử dụng makefiles.)
Eliah Kagan

0

Tại sao không tạo tập lệnh shell, sau đó tạo liên kết tượng trưng trỏ đến tập lệnh shell bạn đã tạo? Đặt liên kết tượng trưng trong một thư mục nằm trong PATH để bạn có thể 'chạy' liên kết tượng trưng bất kể thư mục mà bạn đang ở.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.