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

makefile เป็นไฟล์อินพุตสำหรับภาษา / เครื่องมือสร้างบิลด์ มันระบุเป้าหมายและการอ้างอิงพร้อมกับคำสั่งที่เกี่ยวข้องเพื่อดำเนินการ (สูตรอาหาร aka) เพื่ออัปเดตเป้าหมาย


5
อะไรคือความแตกต่างระหว่างการกำหนดตัวแปร GNU Makefile =,? =,: = และ + =?
ใครช่วยอธิบายได้อย่างชัดเจนว่าการมอบหมายตัวแปรนั้นทำงานได้อย่างไรใน Makefiles อะไรคือความแตกต่างระหว่าง : VARIABLE = value VARIABLE ?= value VARIABLE := value VARIABLE += value ฉันได้อ่านหัวข้อในคู่มือของ GNU Make แล้ว แต่ก็ยังไม่สมเหตุสมผลสำหรับฉัน
764 makefile  gnu-make 

8
การส่งตัวแปรเพิ่มเติมจากบรรทัดคำสั่งเพื่อสร้าง
ฉันสามารถส่งตัวแปรไปยัง GNU Makefile เป็นอาร์กิวเมนต์บรรทัดคำสั่งได้หรือไม่ กล่าวอีกนัยหนึ่งฉันต้องการผ่านการขัดแย้งบางอย่างซึ่งในที่สุดจะกลายเป็นตัวแปรใน Makefile

10
makefile: 4: *** ตัวคั่นขาดหายไป หยุด
นี่คือ makefile ของฉัน: all:ll ll:ll.c gcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $< clean : \rm -fr ll เมื่อฉันพยายามmake cleanหรือmake makeฉันได้รับข้อผิดพลาดนี้: :makefile:4: *** missing separator. Stop. ฉันจะแก้ไขได้อย่างไร
473 c  makefile 


11
สิ่งที่ตรงกันข้ามกับ 'make install' คือคุณถอนการติดตั้งไลบรารี่ใน Linux อย่างไร
ในขณะที่วิ่ง ./configure --prefix=/mingw บนระบบ MinGW / MSYS สำหรับห้องสมุดที่ฉันเรียกใช้ก่อนหน้านี้ './configure --prefix=/mingw && make && make install' ฉันเจอข้อความนี้: คำเตือน: เวอร์ชันของ SDK ปลั๊กอิน Vamp ได้รับการติดตั้งแล้ว คาดหวังความกังวลและความเศร้าถ้าคุณติดตั้งเวอร์ชั่นใหม่โดยไม่ต้องลบเก่าออกก่อน (ต่อเนื่อง) เรื่องนี้ทำให้ฉันกังวล ตรงกันข้ามกับ 'make install' คืออะไรถอนการติดตั้งไลบรารี่ใน Linux ได้อย่างไร 'ทำความสะอาด' จะทำงานหรือมีขั้นตอนอื่น ๆ ที่เกี่ยวข้องหรือไม่

14
วิธีการค้นหาจำนวน * ลอจิก * แกนบน Mac OS X
คุณจะบอกได้อย่างไรจากบรรทัดคำสั่งว่ามีคอร์จำนวนเท่าใดบนเครื่องเมื่อคุณใช้ Mac OS X บน Linux ฉันใช้: x=$(awk '/^processor/ {++n} END {print n+1}' /proc/cpuinfo) มันไม่สมบูรณ์แบบ แต่ใกล้กัน นี่มีวัตถุประสงค์เพื่อให้ได้รับการป้อนmakeซึ่งเป็นสาเหตุที่ทำให้ได้ผลลัพธ์ 1 สูงกว่าจำนวนที่แท้จริง และฉันรู้ว่าโค้ดข้างต้นสามารถเขียนได้หนาแน่นขึ้นใน Perl หรือสามารถเขียนได้โดยใช้ grep, wc และ cut แต่ฉันตัดสินใจว่าข้างต้นเป็นข้อตกลงที่ดีระหว่างความกระชับและความสามารถในการอ่าน แก้ไข LATE มากเพียงเพื่อชี้แจง: ฉันถามจำนวนแกนตรรกะที่มีอยู่เพราะสิ่งนี้สอดคล้องกับงานพร้อมกันจำนวนมากที่ฉันต้องการmakeวางไข่ คำตอบ JKP ของการกลั่นต่อไปโดยคริสลอยด์เป็นว่าสิ่งที่ฉันต้องการ YMMV
381 macos  makefile 

16
ข้อผิดพลาด gcc makefile:“ ไม่มีกฎที่จะทำให้เป้าหมาย…”
ฉันพยายามใช้ GCC (linux) กับ makefile เพื่อรวบรวมโครงการของฉัน ฉันได้รับข้อผิดพลาดต่อไปนี้ซึ่งดูเหมือนจะไม่สามารถถอดรหัสในบริบทนี้: "No rule to make target 'vertex.cpp', needed by 'vertex.o'. Stop." นี่คือ makefile: a.out: vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o g++ vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o main.o: main.cpp main.h g++ -c main.cpp vertex.o: vertex.cpp vertex.h g++ -c vertex.cpp edge.o: edge.cpp edge.h …
356 gcc  makefile 


13
การส่งผ่านข้อโต้แย้งเพื่อ“ ทำการ”
ฉันใช้ Makefiles ฉันมีเป้าหมายที่เรียกว่าเรียกใช้เป้าหมายrunการสร้าง ง่ายขึ้นดูเหมือนว่าต่อไปนี้: prog: .... ... run: prog ./prog มีวิธีใดบ้างในการส่งผ่านข้อโต้แย้ง? ดังนั้น make run asdf --> ./prog asdf make run the dog kicked the cat --> ./prog the dog kicked the cat ขอบคุณ!
354 makefile 


7
วิธีการสร้าง Makefile C ++ SIMPLE
เราจำเป็นต้องใช้ Makefile เพื่อดึงทุกอย่างเข้าด้วยกันสำหรับโครงการของเรา แต่อาจารย์ของเราไม่เคยแสดงให้เราเห็นถึงวิธีการ ฉันมีเพียงไฟล์เดียวเท่านั้นa3driver.cpp. คนขับนำเข้าชั้นเรียนจากสถานที่"/user/cse232/Examples/example32.sequence.cpp"คนขับรถนำเข้าชั้นเรียนจากสถานที่ แค่นั้นแหละ. ทุกสิ่งทุกอย่างมีอยู่ในนั้นด้วย.cppนั้นด้วย ฉันจะสร้าง Makefile ง่ายๆที่สร้างไฟล์เรียกทำงานได้a3a.exeอย่างไร
303 c++  makefile 

2
ความแตกต่างระหว่างการใช้ Makefile และ CMake เพื่อคอมไพล์โค้ด
ฉันใช้รหัสใน C / C ++ และใช้ Makefile (GNU) เพื่อรวบรวมรหัส ฉันสามารถทำเช่นเดียวกันกับ CMake และรับ MakeFile อย่างไรก็ตามความแตกต่างระหว่างการใช้ Makefile และ CMake เพื่อรวบรวมรหัสคืออะไร?
288 c++  c  makefile  cmake 

7
ฉันจะบังคับให้ / GCC แสดงคำสั่งได้อย่างไร
ฉันกำลังพยายามแก้ไขข้อผิดพลาดในการรวบรวม แต่ดูเหมือนว่าฉันจะไม่ได้รับ GCC (หรืออาจจะเป็นเรื่องที่ทำให้ ??) แสดงคำสั่งคอมไพเลอร์และตัวเชื่อมโยงที่ใช้งานจริงให้ฉันดู นี่คือผลลัพธ์ที่ฉันเห็น: CCLD libvirt_parthelper libvirt_parthelper-parthelper.o: In function `main': /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:102: undefined reference to `ped_device_get' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:116: undefined reference to `ped_disk_new' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:122: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' collect2: ld returned 1 exit status make[3]: *** [libvirt_parthelper] Error 1 สิ่งที่ฉันต้องการเห็นควรคล้ายกับสิ่งนี้: …
277 gcc  makefile  verbosity 

13
ระบบตรวจจับ makefile
ฉันทำงานเป็นประจำกับคอมพิวเตอร์หลายเครื่องและระบบปฏิบัติการหลายระบบซึ่ง ได้แก่ Mac OS X, Linux หรือ Solaris สำหรับโครงการที่ฉันกำลังทำงานฉันจะดึงรหัสจากที่เก็บ git ระยะไกล ฉันชอบที่จะสามารถทำงานในโครงการของฉันได้ จนถึงตอนนี้ฉันได้พบวิธีที่จะหลีกเลี่ยงการเปลี่ยนแปลงระบบปฏิบัติการด้วยการเปลี่ยน makefile ทุกครั้งที่ฉันสลับคอมพิวเตอร์ อย่างไรก็ตามสิ่งนี้น่าเบื่อและทำให้ปวดศีรษะเป็นพวง ฉันจะแก้ไข makefile ของฉันได้อย่างไรเพื่อตรวจสอบว่าฉันใช้ระบบปฏิบัติการใดอยู่และแก้ไขไวยากรณ์ตามนั้น นี่คือ makefile: cc = gcc -g CC = g++ -g yacc=$(YACC) lex=$(FLEX) all: assembler assembler: y.tab.o lex.yy.o $(CC) -o assembler y.tab.o lex.yy.o -ll -l y assembler.o: assembler.c $(cc) -o assembler.o assembler.c …

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