Cyven's Braindump

target in Makefile

  • belong: Makefile
    .PHONY: test
    test: tests.out
            @./tests.out
    
    .PHONY: memcheck
    # ... (memcheck 在后面)
    
    .PHONY: clean
    # ... (clean 在更后面)
    

这里的 test, memcheck, clean就是 Target

一般 test,clean,all,install 都跟 PHONY in Makefile 搭配

如果只执行 make ,后面不带任何 target, 那就会尝试构建Makefile中第一个定义的目标, 在上面就是 test

如果你希望默认的 make 命令是编译你的业务程序,你需要新增一个业务程序的目标,并把它放在 test 前面。 例如,你可以添加一个 all 或 app.out 目标放在最前面:

  # 将 'all' 放在最前面,使其成为默认目标
.PHONY: all
all: app.out

app.out: main.c math_utils.c # 假设这是你的业务源文件
        $(CC) $(CFLAGS) $^ -o $@ $(LIBS)

# 然后才是你的测试目标
.PHONY: test
test: tests.out
        @./tests.out

# ... 其他规则 ...