制作文件,看起来好吗?

cod*_*ons 1 c

all: run

run: test.o list.o matrix.o smatrix.o
    gcc test.o list.o matrix.o smatrix.o -o matrix-mul

list.o: list.c list.h
    gcc -g -c list.c 

matrix.o: matrix.c matrix.h
    gcc -g -std=c99 -c -o matrix.o matrix.c

smatrix.o: smatrix.c smatrix.h
    gcc -g -c -o smatrix.o smatrix.c

test.o: test.c test.h
    gcc -g -c test.c 
Run Code Online (Sandbox Code Playgroud)

我制作一个makefile时遇到了很多问题,我终于搞定了.我只是想确保这些都可以(不仅仅是为了让程序运行,而是为了一个好的make文件)

一个问题是为什么matrix.o和smatrix.o在.gcc -g -c ...行中有.o文件,其中list.o和test.o没有那行...

我不得不添加-std = c99因为我对循环错误有些奇怪,但仍然不明白为什么我需要将matrix.o放在行中..

Yur*_*uri 5

该文件是OK-ish.它不易维护.

这个网站有一个关于如何制作漂亮的makefile的非常好的教程:http: //mrbook.org/blog/tutorials/make/

特别是看最后一个例子:

CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=main.cpp hello.cpp factorial.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=hello

all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS) 
    $(CC) $(LDFLAGS) $(OBJECTS) -o $@

.cpp.o:
    $(CC) $(CFLAGS) $< -o $@
Run Code Online (Sandbox Code Playgroud)

这应该向您展示如何增强可维护性(添加额外的文件SOURCES,其余文件自动完成).