我在C中制作程序,我想知道如何使用Makefile构建和运行我的程序。
我有三个文件:
main.c
count.c
bin2csv.c
我也有这些标题:
bin2csv.h
count.h
struct.h
这是我的makefile:
CC = gcc
OBJS = main.o count.o bin2csv.o
HEADERS = struct.h count.h bin2csv.h
APP_NAME = project2
all: $(APP_NAME)
$(APP_NAME): $(OBJS) $(HEADERS)
$(CC) $(OBJS) -o $(APP_NAME)
main.o:
$(CC) -c main.c
count.o:
$(CC) -c count.c
bin2csv.o:
$(CC) -c bin2csv.c
clean:
rm -f *.o $(APP_NAME)
我的问题如下: 这个make文件发生了什么?它遍历层次结构并将这些.c文件编译成目标文件,包括标题?
我如何运行和编译我的程序? 我尝试通过添加print语句在main.c中进行更改,但我认为使用gcc进行编译会抛弃makefile。我知道我可以使用命令make我不相信任何改变。
答案 0 :(得分:3)
您需要说/openam/identity/attributes?subjectid=" + token
个文件取决于.o
个文件:
.c
否则,main.o: main.c <---- HERE
$(CC) -c main.c
count.o: count.c <---- HERE
$(CC) -c count.c
bin2csv.o: bin2csv.c <---- HERE
没有理由认为需要重新制作make
个文件。
答案 1 :(得分:1)
为了防止重新制作(因此添加依赖项),我重新命令您使用变量列出from reportlab.lib.styles import ParagraphStyle
from reportlab.pdfbase.pdfmetrics import registerFont
from reportlab.platypus import Paragraph, PageBreak, SimpleDocTemplate, Spacer
registerFont(TTFont('Calibri', 'Calibri.ttf')) # Just some font imports
registerFont(TTFont('Calibri-Bold', 'calibrib.ttf'))
pH = ParagraphStyle(name = 'Header', fontName = 'Calibri-Bold', fontSize = 13, leftIndent = 20, firstLineIndent = -20, spaceBefore = 10, leading = 16)
sH = ParagraphStyle(name = 'SubHeader', fontName = 'Calibri', fontSize = 12, leftIndent = 40, firstLineIndent = -20, spaceBefore = 5, leading = 16)
doc = SimpleDocTemplate('Reports\\PDFname.pdf')
story = [Spacer(1, 2 * inch)]
story.append(Paragraph('<a href = page3.html#0>1. First Title</a>', pH)) # Linking the anchor to reference 0
story.append(Paragraph('<a href = page3.html#1>1.1. First Subtitle</a>', sH)) # Linking the anchor to reference 1
story.append(PageBreak())
story.append(Paragraph('<a name = page3.html#0></a> 1. First Title', pH)) # Creating anchor with reference 0
story.append(Paragraph('<a name = page3.html#1></a><br/> 1.1. First Subtitle', style)) # Creating anchor with reference 1
doc.build(story)
个文件而不是.c
个并推导出对象名称:
.o
SRC= main.c \
count.c \
bin2csv.c
OBJS= $(SRC:.c=.o)
将包含您的OBJS
文件名,您可以按照与之相同的方式使用它:
.o
清洁规则
$(APP_NAME): $(OBJS) $(HEADERS)
$(CC) -o $(APP_NAME) $(OBJS)
如果您想要更改标题文件,可以将clean:
rm -f $(OBJS) $(APP_NAME)
添加到-I
以添加特定的标题目录:
gcc