实现通配符后没有输入文件错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现通配符后没有输入文件错误相关的知识,希望对你有一定的参考价值。
Problem
我有Makefile
,我做了一些繁琐的工作来指定我所有的子程序:A.o
通过K.o
(都在source
目录中)定义OBJ
如下。这是我的Makefile
,它按预期工作。
Method that works
ProjectName = SomeName
CXX = g++ -std=c++11
CXXFLAGS = -c -Wall
OBJ = build/main.o build/A.o
build/B.o build/C.o
build/D.o build/E.o
build/F.o build/G.o
build/H.o build/I.o
build/J.o build/K.o
all: $(ProjectName)
$(ProjectName): $(OBJS)
$(CXX) -o $@ $(OBJS)
build/%.o: source/%.cpp
$(CXX) -o $@ $(CXXFLAGS) $<
但是,为了逃避这些繁琐的工作,我已经实现了通配符$(wildcard source/*.cpp)
,我认为它应该可以工作,因为我称之为.o
目录中所有source
扩展名的文件
Methods that does not work
ProjectName = SomeName
CXX = g++ -std=c++11
CXXFLAGS = -c -Wall
SRC := $(wildcard source/*.cpp)
OBJ := $(patsubst source/%.cpp, build/%.o, $(SRC))
all: $(ProjectName)
$(ProjectName): $(OBJS)
$(CXX) -o $@ $(OBJS)
build/%.o: source/%.cpp
$(CXX) -o $@ $(CXXFLAGS) $<
但是,它显示了一个错误:
g++: fatal error: no input files
compilation terminated.
任何帮助将不胜感激。
答案
我相信这是一个简单的错字:你称你的数组OBJ
,但你引用它作为OBJS
。
以上是关于实现通配符后没有输入文件错误的主要内容,如果未能解决你的问题,请参考以下文章
8.1shell介绍 8.2命令历史 8.3命令补全和别名 8.4通配符 8.5输入输出重定向
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”