我有一个makefile(使用nmake & VC++ 2005):
CPP_OBJS = $(CPP_SOURCE:.cpp=.obj)
$(TARGET) : $(CPP_OBJS)
$(link) $(ldebug) $(lflags) /DLL \
$(LIBPATHS) \
$out:$@ $(CPP_OBJS) $(conlibs)
问题是链接步骤失败,因为 $(CPP_OBJS) 被扩展到文件列表中,其中每个文件名都带有一个文件夹名称(这样它是从 CPP_SOURCE 生成的)。由于所有 .obj 文件都在当前文件夹中(编译结果) - link.exe 无法找到 .objs。
我需要类似的东西:(我在这里找到它:http ://uw714doc.sco.com/cgi-bin/info2html?%28make.info%29File%2520Name%2520Functions&lang=en )
`$(notdir NAMES...)' 提取 NAMES 中每个文件名的目录部分以外的所有内容。如果文件名不包含斜线,则保持不变。否则,通过最后一个斜线的所有内容都将被删除。
但那件事似乎不适用于 VC++ 2005 附带的 NMAKE。
非常感谢任何如何克服这个问题的想法。谢谢你。