我成功地为文件扩展名使用了 nmake 推理规则——但是添加文件前缀呢?我正在做 qt 的东西,所以给出了一个文件列表,例如
MOCS=moc_file1.cpp moc_file2.cpp
我想找到一个推理规则来获取 .h 文件名以用作 moc.exe 的输入并创建 .cpp 文件。
NMAKE 推理规则允许为规则中引用的扩展指定前缀。例如:
{$(SRCDIR)}.cpp{$(INTDIR)}.obj :
$(CXX) $(CXXFLAGS) /Fo$@ /c $<
此规则将针对 [推断的] 目标触发,例如:
"$(INTDIR)\somefile.obj" : "$(SRCDIR)\somefile.cpp"
请注意使用 {} 大括号括住前缀。
类似地,一个 NMAKE 推理批处理规则(一次处理多个源文件):
{$(SRCDIR)}.cpp{$(INTDIR)}.obj ::
$(CXX) $(CXXFLAGS) /Fo"$(INTDIR)"\ /c $<
查看官方 NMAKE 文档——它们仍然适用于 VS2012。