makefile คืออะไรกันแน่และเราจะสร้างได้อย่างไร


8

ฉันรู้ว่านี่เป็นคำถามที่โง่ แต่เนื่องจากฉันพยายามอย่างหนักที่จะเรียนรู้ลินุกซ์ด้วยตัวเองฉันต้องการความช่วยเหลือจากพวกคุณ

ฉันพบงานนี้บนอินเทอร์เน็ตและฉันพยายามแก้ไข แต่ฉันไม่เข้าใจอย่างชัดเจนว่าฉันจะใช้ makefiles ใน linux ได้อย่างไรและฉันจะสร้างได้อย่างไร

สมมติว่าไดเรกทอรีงานพิมพ์ของฉันคือ /home/george/Documents

ฉันต้องการสร้าง makefile ซึ่งทำสิ่งต่อไปนี้:

  1. แสดงข้อความดังนี้ "สวัสดีงานวันนี้คืออาทิตย์" อาทิตย์มาจากวันอาทิตย์ ดังนั้นฉันต้องใช้dateคำสั่งในไฟล์สร้างนี้เพื่อแสดงตัวอักษรสามตัวแรกเท่านั้น
  2. บีบอัด/etc/hostsในการ/tmpใช้งานgzip(อาจเป็นที่นี่ควรเป็นเช่น

    gzip -c SOURCE DESTINATION # ?? 
    

ไชโย


Makefiles อยู่ที่นั่นเพื่อสร้างไฟล์อ็อบเจกต์ที่ล้าสมัยจากไฟล์ต้นฉบับในกิจกรรมการพัฒนาซอฟต์แวร์ ไม่มีอะไรจะทำกับสิ่งที่คุณจะทำ
enzotib

คำตอบ:


8

เพื่อตอบคำถามของคุณฉันไม่สามารถให้คำตอบหนึ่งบรรทัด / ย่อหน้าได้เพราะมันเกี่ยวข้องกับทุกสิ่งอ่านลิงค์แรกมันมีทุกสิ่งที่คุณต้องการด้วยตัวอย่างเช่นกัน

กวดวิชาที่ดีที่สามารถอธิบายทุกอย่างเกี่ยวกับการทำ


3
ลิงค์แรกควรเป็น: mrbook.org/blog/tutorials/make
Shahryar Saljoughi

mrbook.org/blog/tutorials/make tutorial ใช้โค้ด c ++ ที่ล้าสมัยและไม่คอมไพล์อีกต่อไป ดูคำถามนี้เพื่อทำความเข้าใจและแก้ไข
David


2

Makefile ใช้เป็น "แผนที่" สำหรับการคอมไพล์โปรแกรม C พวกเขาทำงานกับmakeยูทิลิตี้อธิบายวิธีที่โปรแกรมจะต้องรวบรวม / เชื่อมโยงเพื่อให้ทำงานได้อย่างถูกต้องเมื่อเปลี่ยนเป็นไฟล์ปฏิบัติการ สำหรับงาน UNIX / shell ทั่วโลกคุณกำลังมองหาเชลล์สคริปไม่ใช่ makefiles :)

ดูhttp://en.wikipedia.org/wiki/Make_(software)#Makefilesสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ makefiles และhttp://en.wikipedia.org/wiki/Shell_scriptเพื่อค้นหาเชลล์สคริปต์

เชลล์สคริปต์พื้นฐานสำหรับสิ่งที่คุณพยายามทำคือ:

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

ร้านนี้ในแฟ้มและดำเนินการโดยใช้เปลือกของคุณพรอมต์ ( bash myscript.sh, sh myscript.sh, ... ) นอกจากนี้คุณยังสามารถทำให้สคริปต์ใช้งานได้โดย:

chmod +x myscript.sh

จากนั้นดำเนินการด้วยตัวแปลเริ่มต้นของคุณด้วย:

./myscript.sh

1
ฉันพยายามสร้าง makefile ซึ่งไม่ได้เป็นเชลล์สคริปต์
Adrian George

จากนั้นคุณต้องพัฒนาโปรแกรม C ซึ่งทำสิ่งนี้และรวบรวมโดยใช้ Makefile หากคุณต้องการ Makefiles ไม่ได้ใช้งาน Linux พวกเขาแนะนำการรวบรวมโปรแกรม C มันเป็นสิ่งที่แตกต่างอย่างสิ้นเชิง
John WH Smith

1
@JohnWHSmith ไม่มีอะไรพิเศษเกี่ยวกับการคอมไพล์โปรแกรม C Makefiles สามารถใช้เพื่อทำงานที่หลากหลาย (จากที่กล่าวไว้ว่างานหลายอย่างไม่เหมาะสมสำหรับการใช้งานของ makefiles)
Eliah Kagan

0

ทำไมไม่สร้างเชลล์สคริปต์จากนั้นสร้างลิงก์สัญลักษณ์ที่ชี้ไปที่เชลล์สคริปต์ที่คุณสร้างขึ้น วางลิงก์สัญลักษณ์ในไดเรกทอรีที่อยู่ใน PATH เพื่อให้คุณสามารถ 'เรียกใช้' ลิงก์สัญลักษณ์ได้ไม่ว่าไดเรกทอรีนั้นจะอยู่ที่ใดก็ตาม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.