我正在尝试使用以下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会允许这样做(而且我认为无论如何您都会觉得很奇怪)。