Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Makefile中的另一个规则调用包含“%”的规则? 我有下面的MaFaFlash文件来编译我的C++项目。 obj/%.o: src/%.cpp $(CXX) $(CFLAGS) -c $< -o $@_Makefile_Wildcard - Fatal编程技术网

如何从Makefile中的另一个规则调用包含“%”的规则? 我有下面的MaFaFlash文件来编译我的C++项目。 obj/%.o: src/%.cpp $(CXX) $(CFLAGS) -c $< -o $@

如何从Makefile中的另一个规则调用包含“%”的规则? 我有下面的MaFaFlash文件来编译我的C++项目。 obj/%.o: src/%.cpp $(CXX) $(CFLAGS) -c $< -o $@,makefile,wildcard,Makefile,Wildcard,作品,因为它只是链接,而不是编译,正如我所期望的那样 这也不是: build/main: obj/%.o $(CXX) $^ -o $@ 错误如下: 没有规则使“build/main”需要目标“obj/%.o”。停下来 即使它是必需的。build/main:$(通配符obj/*.o)也不起作用,因为通配符将在第一次读取规则时展开(在生成.o之前,在它们存在于文件系统之前,所以它将展开为空)。build/main:$(通配符obj/*.o)不起作用,因为在第一次读取规则时(在生成.o之前

作品,因为它只是链接,而不是编译,正如我所期望的那样

这也不是:

build/main: obj/%.o
    $(CXX) $^ -o $@
错误如下:

没有规则使“build/main”需要目标“obj/%.o”。停下来


即使它是必需的。

build/main:$(通配符obj/*.o)也不起作用,因为通配符将在第一次读取规则时展开(在生成.o之前,在它们存在于文件系统之前,所以它将展开为空)。
build/main:$(通配符obj/*.o)
不起作用,因为在第一次读取规则时(在生成.o之前,以及在文件系统上存在之前,通配符将展开,所以它将展开为空)。源代码是否展开为
src/main.cpp src/other.cpp
main.cpp other.cpp
?@kim366:您可以自己查看:put
$(它展开为的信息$(SOURCES))
作业后。是否将
SOURCES
扩展到
src/main.cpp src/other.cpp
main.cpp other.cpp
?@kim366:您可以自己看到:在作业后放置
$(信息扩展到$(SOURCES))
SOURCES := $(wildcard src/*.cpp)
OBJECTS := $(patsubst src/%.cpp, obj/%.o, $(SOURCES))

build/main: $(OBJECTS)
    $(CXX) $^ -o $@
SOURCES := $(wildcard src/*.cpp)
OBJECTS := $(patsubst src/%.cpp, obj/%.o, $(SOURCES))

build/main: $(OBJECTS)
    $(CXX) $^ -o $@