NMAKE batch-mode规则中添加多个源路径的实现方法咨询
问题解答
可行性结论
该需求可直接实现,你尝试的写法仅存在多路径分隔符的语法错误。
配置说明
NMAKE 的批模式推导规则中,大括号内的多个源路径需要使用*分号(;)*分隔,不能使用空格分隔。
正确配置示例
首先新增你需要的额外源目录变量,再修改原有的批模式编译规则即可,完整配置参考如下:
# 原有基础路径配置 DIR_SRC = src DIR_INCLUDE = include DIR_LIB = lib DIR_BIN = bin\x64 DIR_BUILD = build\x64 # 新增第二个源目录配置,替换为你实际的目录路径即可 ANOTHER_DIR = other_src # 多个源目录用分号分隔,适配两个路径下的cpp文件编译 {$(DIR_SRC);$(ANOTHER_DIR)}.cpp{$(DIR_BUILD)}.obj :: @echo Compiling... cl /c /EHsc /Fo$(DIR_BUILD)\ /MD /I$(DIR_INCLUDE) $< $(EXECUTABLE_NAME) : $(DIR_BUILD)\*.obj @echo Linking $(EXECUTABLE_NAME)... link /out:$(DIR_BIN)\$(EXECUTABLE_NAME) $(DIR_BUILD)\*.obj
注意事项
该规则会优先匹配第一个搜索到的对应cpp文件,如果你两个源目录下存在同名的.cpp文件,会导致编译生成的.obj文件在同个输出目录下互相覆盖,最终链接出错。如果有同名文件需求,建议为不同源目录的obj设置不同的输出子目录。
内容的提问来源于stack exchange,提问作者AliceTheCat
相关产品推荐
相关产品推荐

