这类似于Warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated。但是,OP试图编译头文件。就我而言,我试图生成依赖关系:

$ git diff
diff --git a/GNUmakefile b/GNUmakefile
index 791ef05..ce48a59 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -175,6 +176,11 @@ LIBIMPORTOBJS = $(LIBOBJS:.o=.import.o)
 TESTIMPORTOBJS = $(TESTOBJS:.o=.import.o)
 DLLTESTOBJS = dlltest.dllonly.o

+-include GNUmakefile.deps
+
+GNUmakefile.deps:
+       $(CXX) $(CXXFLAGS) -MM *.h *.cpp > GNUmakefile.deps
+

在避免发出Clang警告的同时,如何使用CXX建立依赖关系?

最佳答案

C++编译器的-MM选项将提供输入文件所有依赖项的列表。假设您实际上编译了.cpp文件(并且不执行$(CXX) -c xyz.h或类似的操作),则仅您的.cpp文件需要依赖项。因此将其更改为:

 $(CXX) $(CXXFLAGS) -MM *.cpp > GNUmakefile.deps

应该在GNUmakefile.deps中提供您需要的所有依赖项。

09-06 21:37