You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:24:03