我正在尝试使用以下make文件来编译c ++ ...

CC = g++
CFLAGS = -g -O2
OBJECTS = WavFileTool.o WavFile.o

WavFileTool.exe : $(OBJECTS)
    $(CC) $(CFLAGS) $(OBJECTS) -o wavfiletool.exe

WavFileTool.o : WavFileTool.cpp
    $(CC) $(CFLAGS) -c WavFileTool.cpp

WavFile.o : WavFile.cpp
    $(CC) $(CFLAGS) -c WavFile.cpp


但是当我运行时,这只是说“什么也没做”。我有点困惑。根据我阅读的教程,我无法弄清楚哪里出了问题...

最佳答案

这很可能是由于您使用了不区分大小写的文件系统,并且不匹配make文件中文件名的大小写。尝试将第一个规则更改为:

WavFileTool.exe : $(OBJECTS)
    $(CC) $(CFLAGS) $(OBJECTS) -o WavFileTool.exe


如果您没有区分大小写的文件系统,则可能会遇到这样的问题:无论是否更新源,都必须每次都重新构建WavFileTool.exe。

当然,存在第三种可能性,即您正在使用文件敏感文件系统,并且同时拥有wavfiletool.exe文件和WavFileTool.exe文件(其中WavFileTool.exe比任何源文件都新)。我不认为Windows会允许这样做(而且我认为无论如何您都会觉得很奇怪)。

10-08 18:06