คำถามติดแท็ก make

8
การใช้ Make ถือว่าล้าสมัยหรือไม่ [ปิด]
ดังนั้นฉันจึงเจอหลายความคิดเห็น / โพสต์ / อื่น ๆ เกี่ยวกับการสร้าง makefiles โดยตรงและมันเป็นเรื่องโง่ที่ต้องทำในปี 2015 ฉันรู้เครื่องมือต่าง ๆ เช่น CMake และฉันใช้ CMake บ่อยครั้งมาก CMake กำลังสร้าง Makefile ให้คุณและช่วยในการลบความน่าเบื่อของการทำมันด้วยตัวคุณเอง แน่นอนว่ามันเพิ่มคุณสมบัติที่ยอดเยี่ยมอื่น ๆ อีกมากมาย ... แต่มันก็ยังเป็น Makefile ในที่สุด ดังนั้นคำถามของฉันคือการพูดคุย 'ล้าสมัย' เกี่ยวกับการอ้างอิงถึงยูทิลิตี้ Make ทั้งหมดหรือเพียงแค่ความคิดในการเขียน Makefiles ของคุณเองหรือไม่ ฉันไม่ได้ใช้ IDE สำหรับการพัฒนา C / C ++ เลย (แค่ emacs) ดังนั้นฉันจึงเขียน Makefiles เสมอ ถ้า Make …
31 c++  c  builds  make  cmake 

6
เหตุใด makefiles จึงควรมีเป้าหมาย“ ติดตั้ง”?
มาจากโลกของซีและซี ++ สร้างระบบส่วนใหญ่มีinstallเป้าหมายสะดุดตา Makefiles (ซึ่งจะมีการแนะนำโดย GNUตัวอย่าง) หรือCMake เป้าหมายนี้คัดลอกไฟล์รันไทม์ (ไฟล์เรียกทำงาน, ไลบรารี, ... ) ในระบบปฏิบัติการ (ตัวอย่างเช่นในC:\Program Files\บน Windows) นี่รู้สึกแฮ็คจริงๆเพราะสำหรับฉันมันไม่ใช่ความรับผิดชอบของระบบบิลด์ที่จะติดตั้งโปรแกรม (ซึ่งจริงๆแล้วเป็นความรับผิดชอบของผู้จัดการระบบปฏิบัติการ / ผู้จัดการแพ็คเกจ) นอกจากนี้ยังหมายถึงระบบการสร้างหรือสคริปต์การสร้างจะต้องรู้ว่าองค์กรของโปรแกรมที่ติดตั้งพร้อมกับตัวแปรสภาพแวดล้อมตัวแปรรีจิสทรี, symlink, สิทธิ์ ฯลฯ ที่ดีที่สุดในการสร้างระบบควรจะมีreleaseเป้าหมายที่จะส่งออกโปรแกรมที่ติดตั้ง (ตัวอย่าง.debหรือ.msi) แล้วขอให้ระบบปฏิบัติการเพื่อติดตั้งโปรแกรมที่ make uninstallนอกจากนี้ยังจะช่วยให้ผู้ใช้สามารถถอนการติดตั้งโดยไม่ต้องพิมพ์ ดังนั้นคำถามของฉัน: ทำไมระบบสร้างมักจะแนะนำให้มีinstallเป้าหมาย

8
การเรียน makefiles มีความสำคัญแค่ไหน? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันทำงานใน c ++ ส่วนใหญ่เป็นงานอดิเรก (ฉันยังเรียนหนังสืออยู่และไม่มีงานจริง) IDEs สร้าง makefile ให้ฉันและฉันก็สงสัยว่ามันคุ้มค่าที่จะเรียนรู้วิธีทำให้มันเป็นตัวของตัวเองหรือเปล่า โดย "การเรียนรู้ที่คุ้มค่า" ฉันหมายถึงฉันควรวางทุกอย่างและเรียนรู้วิธีการเขียนก่อนที่จะเรียนรู้ c ++ ต่อไปหรือไม่ การเรียนรู้พวกเขาจะจำเป็นจริงๆหรือ? ถ้าเป็นเช่นนั้นฉันควรเรียนรู้เกี่ยวกับพวกเขา (ไวยากรณ์ทั่วไปและความเข้าใจวิธีการทำงาน ฯลฯ ) หรือเรียนรู้วิธีการเขียนพวกเขาจริง ๆ ?
12 java  learning  c++  syntax  make 

4
มีกฎทั่วไปหรือไม่เมื่อคุณควรใช้ 'ทำให้สะอาด' แทนที่จะ 'ทำ'
ฉันกำลังเขียนโปรแกรมที่มีหลายไฟล์ในตอนนี้และเห็นได้ชัดว่าใช้งานเพียง 'ทำ' (เพราะคนเราคิดว่าจะต้องทำในสถานการณ์ส่วนใหญ่อย่างสังหรณ์ใจ) ด้วยเหตุผลบางอย่างทำให้โปรแกรมของฉันล้มเหลว ฉันเดาว่าฉันสามารถให้รายละเอียดเพิ่มเติมของปัญหา แต่สิ่งสำคัญคือมันทำงานเมื่อใช้ 'ทำความสะอาด' ดังนั้นฉันจึงสงสัยว่าถ้าใครรู้กฎทั่วไปของหัวแม่มือสำหรับการทำงาน 'ทำความสะอาด' แทนที่จะ 'ทำ'
11 c++  builds  make 

2
มีการใช้เธรดจำนวนเท่าใด
เมื่อฉัน (อีกครั้ง) สร้างระบบขนาดใหญ่บนคอมพิวเตอร์เดสก์ท็อป / แล็ปท็อปฉันบอกmakeให้ใช้มากกว่าหนึ่งเธรดเพื่อเร่งความเร็วในการรวบรวมเช่นนี้: $ make -j$[ $K * $C ] ที่$Cควรจะระบุจำนวนแกน (ซึ่งเราสามารถถือว่าเป็นตัวเลขที่มีหนึ่งหลัก) เครื่องมีในขณะที่$Kเป็นสิ่งที่ฉันแตกต่างจาก2ไป4ขึ้นอยู่กับอารมณ์ของฉัน ตัวอย่างเช่นฉันอาจบอกว่าmake -j12ฉันมี 4 แกนระบุว่าmakeจะใช้ถึง 12 กระทู้ เหตุผลของฉันคือถ้าฉันใช้เฉพาะ$Cเธรดแกนจะว่างขณะที่กระบวนการกำลังดึงข้อมูลจากไดรฟ์ แต่ถ้าฉันไม่ จำกัด จำนวนเธรด (เช่นmake -j) ฉันเสี่ยงที่จะเสียเวลาในการสลับบริบท, หน่วยความจำไม่เพียงพอหรือแย่กว่านั้น สมมติว่าเครื่องมี$Mหน่วยความจำกิ๊ก ( $Mอยู่ในอันดับ 10) ดังนั้นฉันสงสัยว่ามีกลยุทธ์ที่จัดตั้งขึ้นเพื่อเลือกจำนวนเธรดที่มีประสิทธิภาพมากที่สุดที่จะเรียกใช้หรือไม่

3
ทำไมบิลด์ที่เพิ่มขึ้นใน“ make” ไม่ใช้อัลกอริทึมการแปลงแป้นพิมพ์
ผมเริ่มต้นด้วยและฉันสงสัยเกี่ยวกับเวลาที่จะใช้makemake clean เพื่อนร่วมงานคนหนึ่งบอกฉันว่างานสร้างที่เพิ่มขึ้นมาmakeนั้นขึ้นอยู่กับการประทับเวลาของไฟล์ ดังนั้นหากคุณชำระเงินไฟล์รุ่นเก่าใน VCS ของคุณมันจะมีเวลา "เก่า" และจะถูกทำเครื่องหมายว่า "ไม่จำเป็นต้องคอมไพล์ไฟล์นี้ใหม่" จากนั้นไฟล์นั้นจะไม่รวมอยู่ในบิลด์ถัดไป ตามที่เพื่อนร่วมงานเดียวกันกับที่มันจะเป็นเหตุผลที่จะใช้ make clean อย่างไรก็ตามฉันได้รับคำตอบสำหรับคำถาม "เมื่อต้องการใช้make clean" จากคำถาม StackExchange อื่น ๆ แต่คำถามอื่นของฉันคือ: ทำไมบิลด์ที่เพิ่มขึ้นโดยใช้การmakeประทับเวลาของไฟล์และไม่ใช่ SHA-1 เช่น ตัวอย่างเช่น Git แสดงให้เห็นว่าเราสามารถตรวจสอบว่ามีการแก้ไขไฟล์โดยใช้ SHA-1 หรือไม่ สำหรับปัญหาเรื่องความเร็วหรือไม่
10 builds  make 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.