我尝试下载cygwin来运行我的makefile,但出现以下错误:
> make
FIND: formato del parametro non corretto
FIND: formato del parametro non corretto
g++ -o esempio
g++.exe: fatal error: no input files
compilation terminated.
makefile:12: recipe for target 'esempio' failed
make: *** [esempio] Error 1
这是我的基本makefile:
PHONY: all clean
CPPSOURCES += $(shell find . -name '*.cpp')
clean:
rm esempio
all: esempio
@true
esempio: $(CPPSOURCES)
g++ $(CPPSOURCES) -o esempio
我该怎么办?
答案 0 :(得分:2)
两件事对我来说看起来很不寻常。首先是这样:
CPPSOURCES += $(shell find . -name '*.cpp')
通常使用wildcard
代替find
。我将其更改为以下内容:
CPPSOURCES = $(sort $(wildcard *.cpp))
CPPOBJECTS = $(CPPSOURCES:.cpp=.o)
第二,对于您的esempio
食谱,请使用CPPOBJECTS
而不是CPPSOURCES
:
esempio: $(CPPOBJECTS)
$(CXX) $(CXXFLAGS) $(CPPOBJECTS) -o esempio
在一个食谱中使用true
看起来也很奇怪(但似乎可以使用)。您可以将其更改为以下内容,然后将其移至文件顶部,以使其成为默认配方:
.PHONY: all
all esempio: $(CPPOBJECTS)
$(CXX) $(CXXFLAGS) $(CPPOBJECTS) -o esempio
Here是使用许多GNU附加功能的makefile的示例。
答案 1 :(得分:1)
您在PATH的cygwin bin目录之前有dos命令目录。 这是我的cygwin路径:
$ echo $PATH
$HOME/bin:/usr/local/bin:/usr/bin:/cygdrive/c/Go/bin:/bin
唯一的Windows目录是golang bin目录。使用cygpath
查找cygwin等效目录名称。
最简单的方法是删除所有Windows目录,然后只添加所需的几个目录。为此,请修改您的用户环境变量以添加CYGWIN_NOWINPATH=1
。在.bashrc
中,您可以只为您真正需要的Windows目录添加cygwin等效项。
答案 2 :(得分:0)
它没有拾取任何文件。检查您是否在正确的目录中,并且从该目录运行 a b
0 5 10
1 4 9
2 3 8
3 2 7
4 1 6
5 0 5
命令会生成这些文件。如果没有,请解决该问题。
此外,通常认为删除程序的原始版本是 ,而不是在编译之后。