Makefile只跟踪第一个文件

时间:2018-02-08 04:28:53

标签: c++ makefile

我的makefile中有两个.cpp文件:

test1.o : test1.cpp
        g++ test1.cpp -o test1.o

test2.o : test2.cpp
        g++ test2.cpp -o test2.o

在对test1.cpp和test2.cpp进行更改并在命令行中键入make之后,只重新编译test1.o,并且没有对test2.o执行任何操作。

但是,如果我交换makefile中的两个块,{} {}将自动重新编译,而test2.o则不会。

似乎我的makefile只跟踪第一个文件。我想知道哪一部分出了问题。

2 个答案:

答案 0 :(得分:2)

尝试添加默认目标。一个非常简单的起点:all: test1.o test2.o

答案 1 :(得分:2)

默认情况下<?php $items = ['2' => 'Full', '4' => 'No', '3' => 'Semi']; $selected = [2, 3]; $keys = array_keys($items); foreach($keys as $key){ if (in_array($key, $selected)) { echo '<input id="checkBox" value="'.$key.'" type="checkbox" checked> '.$items[$key]; } else{ echo '<input id="checkBox" value="'.$key.'" type="checkbox"> '.$items[$key]; } } ?> 会在makefile中构建第一件事,如果你不告诉它要构建什么。

您可以运行make来专门制作,也可以添加假目标,这样它就会默认生成make test1.o test2.o - 这就是许多makefile 使用

使用all告诉我.PHONY不是真正的文件,所以如果您出于某种原因有一个名为all的文件,它就不会行为不端。

all