lit*_*ils 4 dependencies gcc makefile
我正在编写一个 Makefile 来编译一个很长的项目。基本上,我已经定义了我需要的所有对象。当我需要生成依赖项时,问题就出现了。我正在做这样的事情:
a.o: $( $(CXX) -MM $(INCLUDE) A/a.cpp | sed 's/a.o: //')
$(CXX) $(CXXFLAGS) $(INCLUDES) A/a.cpp
b.o: $( $(CXX) -MM $(INCLUDE) A/b.cpp | sed 's/b.o: //')
$(CXX) $(CXXFLAGS) $(INCLUDES) A/b.cpp
libab.a: a.o b.o
$(LXX) $(LXXFLAGS) libab.a a.o b.o
Run Code Online (Sandbox Code Playgroud)
的输出$(CXX) -MM $(INCLUDE) A/a.cpp | sed 's/a.o: //'列出了 a.cpp 需要编译的所有依赖项,因此当我声明对象但它不起作用时,我尝试将此命令的输出像依赖项一样放置。
您知道如何做吗?
谢谢。
您为什么要尝试删除您已经手动输入的目标前缀?
相反,只需包含整个依赖文件。
-include $(ALL_CPP_FILES:%.cpp=%.d)
Run Code Online (Sandbox Code Playgroud)
我通常自动生成.d(依赖项)文件的标志是:
CPPFLAGS+=-MMD # automatic .d dependency file generation
Run Code Online (Sandbox Code Playgroud)
这与 类似-MD,只不过它只提到用户头文件,而不提到系统头文件。
样本:
-include $(ALL_CPP_FILES:%.cpp=%.d)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7135 次 |
| 最近记录: |