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

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

7
ทำ: ไม่มีอะไรจะทำเพื่อʻall '
ฉันกำลังทำเช่น pgm เพื่อสร้างไฟล์ make http://mrbook.org/tutorials/make/ โฟลเดอร์ของฉัน eg_make_creation มีไฟล์ต่อไปนี้ desktop:~/eg_make_creation$ ls factorial.c functions.h hello hello.c main.c Makefile Makefile # I am a comment, and I want to say that the variable CC will be # the compiler to use. CC=gcc # Hwy!, I am comment no.2. I want to say that …
99 c  makefile 

2
วิธีกำหนดเส้นทางรวมหลายรายการใน Makefile
ใหม่สำหรับ C ++; ความเข้าใจพื้นฐานของรวมไลบรารีและกระบวนการคอมไพล์ ทำ makefiles ง่าย ๆ ยัง โครงการปัจจุบันของฉันเกี่ยวข้องกับการใช้ API ฐานข้อมูลข้อมูลและฉันจำเป็นต้องรวมไฟล์ส่วนหัวใน dirs ที่ไม่เป็นมาตรฐานมากกว่าหนึ่ง จะเขียนยังไงดี? ยังไม่พบสิ่งใดในเน็ตอาจเป็นเพราะฉันใช้คำค้นหาไม่ดี นี่เป็นวิธีหนึ่งที่ฉันพยายาม (ไม่ได้ผล) เพียงเพื่อแสดง makefile LIB=-L/usr/informix/lib/c++ INC=-I/usr/informix/incl/c++ /opt/informix/incl/public default: main main: test.cpp gcc -Wall $(LIB) $(INC) -c test.cpp #gcc -Wall $(LIB) $(INC) -I/opt/informix/incl/public -c test.cpp clean: rm -r test.o make.out
99 c++  include  makefile 

10
Makefile การอ้างอิงส่วนหัว
สมมติว่าฉันมี makefile กับกฎ %.o: %.c gcc -Wall -Iinclude ... ฉันต้องการให้ * .o สร้างใหม่ทุกครั้งที่ไฟล์ส่วนหัวมีการเปลี่ยนแปลง แทนที่จะหารายการของการอ้างอิงเมื่อใดก็ตามที่ไฟล์ส่วนหัวมี/includeการเปลี่ยนแปลงอ็อบเจ็กต์ทั้งหมดใน dir จะต้องถูกสร้างใหม่ ฉันคิดวิธีที่ดีในการเปลี่ยนแปลงกฎเพื่อรองรับสิ่งนี้ไม่ได้ฉันยินดีรับข้อเสนอแนะ คะแนนโบนัสหากรายการส่วนหัวไม่จำเป็นต้องฮาร์ดโค้ด

7
จะใช้ GNU Make บน Windows ได้อย่างไร?
ผมติดตั้ง MinGW และ MSYS เพิ่มC:\MinGW\binไปPATHแต่ฉันยังคงไม่สามารถทำงานบน Windows Makefile cmdฉันต้องการเรียกใช้ cmd.exe และมีประเภทเช่นmake allแต่ cmd ของฉันบอกว่าไม่มีคำสั่งดังกล่าว ฉันควรทำอย่างไรดี? ฉันไม่ต้องการใช้ MSYS เชลล์นั่นไม่ใช่ประเด็น มีความคิดอย่างไรในการใช้ GNU Make ใน Windows cmd เท่าที่ทำได้ใน Ubuntu Cygwinฉันไม่ได้สนใจใน

3
ฉันจะสร้าง Makefile สำหรับโปรเจ็กต์ C ที่มีไดเร็กทอรีย่อย SRC, OBJ และ BIN ได้อย่างไร
ไม่กี่เดือนที่ผ่านมาฉันคิดเรื่องทั่วไปMakefileสำหรับงานโรงเรียนดังต่อไปนี้: # ------------------------------------------------ # Generic Makefile # # Author: yanick.rochon@gmail.com # Date : 2010-11-05 # # Changelog : # 0.01 - first version # ------------------------------------------------ # project name (generate executable with this name) TARGET = projectname CC = gcc -std=c99 -c # compiling flags here CFLAGS = -Wall -I. LINKER …
95 c  makefile 

5
Makefile ifeq ตรรกะหรือ
คุณดำเนินการตรรกะหรือโดยใช้ifeqตัวดำเนินการของ make ได้อย่างไร เช่นฉันมี (ตัวย่อ): ifeq ($(GCC_MINOR), 4) CFLAGS += -fno-strict-overflow endif ifeq ($(GCC_MINOR), 5) CFLAGS += -fno-strict-overflow endif แต่ต้องการรวมบรรทัดเหล่านี้ (ใช่ใช่เครื่องมืออัตโนมัติกำหนดค่า ฯลฯ ฯลฯ มือหนักเกินไปสำหรับสถานการณ์ปัจจุบันต้องการเก็บทุกอย่างไว้ใน Makefile ที่นี่) [ตรรกะตรงข้ามกับคำถามนี้: วิธีใช้หลายเงื่อนไขในคำสั่ง 'ifeq' ]
95 makefile 

2
คืออะไร = ใน Makefile
KDIR ?= $(shell uname -r) ความหมายของ?=อะไร? ฉันได้เข้าใจความแตกต่างระหว่าง:=, +=และ=จากหัวข้ออื่นที่มีอยู่ในกองมากเกิน ?=แต่ไม่สามารถหาคำอธิบายสำหรับ

6
อักขระตัวแทนแบบเรียกซ้ำใน GNU ทำให้?
เป็นเวลานานแล้วที่ฉันใช้makeดังนั้นอดทนกับฉัน ... ฉันมีไดเร็กทอรีflacซึ่งมีไฟล์. FLAC ฉันมีไดเร็กทอรีที่เกี่ยวข้องซึ่งmp3มีไฟล์ MP3 หากไฟล์ FLAC ใหม่กว่าไฟล์ MP3 ที่เกี่ยวข้อง (หรือไม่มีไฟล์ MP3 ที่เกี่ยวข้อง) ฉันต้องการเรียกใช้คำสั่งมากมายเพื่อแปลงไฟล์ FLAC เป็นไฟล์ MP3 และคัดลอกแท็ก นักเตะ: ฉันต้องการค้นหาflacไดเร็กทอรีซ้ำและสร้างไดเร็กทอรีย่อยที่เกี่ยวข้องในmp3ไดเร็กทอรี ไดเร็กทอรีและไฟล์สามารถมีช่องว่างในชื่อและตั้งชื่อใน UTF-8 และฉันต้องการใช้makeเพื่อขับเคลื่อนสิ่งนี้

9
ฉันจะให้ Makefile สร้างซอร์สไฟล์ใหม่โดยอัตโนมัติที่มีไฟล์ส่วนหัวที่แก้ไขได้อย่างไร (ในภาษา C / C ++)
ฉันมี makefile ต่อไปนี้ที่ใช้สร้างโปรแกรม (จริงๆแล้วเคอร์เนล) ที่ฉันกำลังทำงาน ตั้งแต่เริ่มต้นและฉันกำลังเรียนรู้เกี่ยวกับกระบวนการดังนั้นมันจึงไม่สมบูรณ์แบบ แต่ฉันคิดว่ามันมีประสิทธิภาพเพียงพอสำหรับระดับประสบการณ์การเขียน makefiles AS = nasm CC = gcc LD = ld TARGET = core BUILD = build SOURCES = source INCLUDE = include ASM = assembly VPATH = $(SOURCES) CFLAGS = -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions \ -nostdinc -fno-builtin -I $(INCLUDE) ASFLAGS = -f …

5
ฉันจะเพิ่ม dir ใน $ PATH ใน Makefile ได้อย่างไร
ฉันต้องการเขียน Makefile ซึ่งจะเรียกใช้การทดสอบ การทดสอบอยู่ในไดเร็กทอรี "./tests" และไฟล์ปฏิบัติการที่จะทดสอบอยู่ในไดเร็กทอรี "./bin" เมื่อฉันเรียกใช้การทดสอบพวกเขาไม่เห็นไฟล์ exec เนื่องจากไดเร็กทอรี. / bin ไม่อยู่ใน $ PATH เมื่อฉันทำสิ่งนี้: EXPORT PATH=bin:$PATH make test ทุกอย่างใช้งานได้ อย่างไรก็ตามฉันต้องการเปลี่ยน $ PATH ใน Makefile เนื้อหา Makefile อย่างง่าย: test all: PATH=bin:${PATH} @echo $(PATH) x มันพิมพ์เส้นทางอย่างถูกต้อง แต่ไม่พบไฟล์ x เมื่อฉันทำสิ่งนี้ด้วยตนเอง: $ export PATH=bin:$PATH $ x ทุกอย่างเรียบร้อยแล้ว ฉันจะเปลี่ยน $ PATH ใน Makefile …
91 linux  makefile 

10
GNU make: จำนวนงานควรเท่ากับจำนวนแกน CPU ในระบบหรือไม่?
ดูเหมือนจะมีข้อโต้แย้งว่าจำนวนงานใน GNU ที่ทำควรจะเท่ากับจำนวนคอร์หรือถ้าคุณสามารถเพิ่มประสิทธิภาพเวลาในการสร้างโดยการเพิ่มงานพิเศษหนึ่งงานที่สามารถจัดคิวได้ในขณะที่งานอื่น ๆ "ทำงาน" . จะดีกว่าที่จะใช้-j4หรือ-j5ในระบบ Quad Core หรือไม่? คุณเคยเห็น (หรือทำ) การเปรียบเทียบใด ๆ ที่สนับสนุนอย่างใดอย่างหนึ่งหรือไม่?

2
การหลบหนีใน makefile
ฉันพยายามทำสิ่งนี้ใน makefile และมันล้มเหลวอย่างมาก: M_ARCH := $(shell g++ -dumpmachine | awk '{split($1,a,"-");print a[1]}') คุณรู้ไหมว่าทำไม? ฉันเดาว่ามันเกี่ยวข้องกับการหลบหนี แต่อะไรและที่ไหน?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.