我试图获得目标的对象依赖关系以使用推理/隐式规则。我得到了这个错误
NMAKE:致命错误U1073:不知道如何制作' interface1.obj' 停止。 NMAKE:致命错误U1077:' cd' :返回代码' 0x2'停止。
要调用的最后一个目标是
interface.dll: interface1.obj interface2.obj
我在makefile中有像这样的推理规则
.SUFFIXES: .c .cpp .obj
.c.obj:
$(CC) $(CFLAGS) $<
.cpp.obj:
$(CC) $(CFLAGS) $<
我已经尝试在调用.c.obj之后回显测试,它甚至都没有到达那里。在尝试创建interface.obj时似乎无法识别规则 我也试过用这样的路径制作规则
{$(SOURCE_DIR)}.c{$(BIN_PATH)}.obj:
$(CC) $(CFLAGS) $<
我已经成功创建了一个interface1.obj目标并一次编译一个文件,但我无法获得推理/隐式规则以获得识别和使用。
答案 0 :(得分:1)
{$(SOURCE_DIR)}.c{$(BIN_PATH)}.obj:
表示您要制作的对象interface1.obj
位于$(BIN_PATH)
中。
如果将对象列为interface1.obj
,则它将假定interface1.obj
在当前目录中。
因此,您需要这样写从属对象文件:$(BIN_PATH)\\interface1.obj
反之亦然,如果它们确实在当前目录中,则可以编写诸如{$(SOURCE_DIR)}.c{}.obj:
之类的规则和诸如interface1.obj
之类的依赖对象。
源文件也一样。
-Kelsey