0

来自 rules.vxWorks:

partialImage.o: $(PRJ_OBJS) version.o ....
    $(LD_PARTIAL) $(PRJ_OBJS) .... -o ${@}

vxWorks: partialImage.o  ..... 
    $(LD) $(LFFLAGS) $(PRJ_OBJS) \
       -defsym _VX_DATA_ALIGN=16 \
       -T link.RAM \
       -o ${@}

在我的一个项目中,我将partialImage 和vxWorks 分离为单独的目录级别,因为我想在parttailImage.o 中添加更多内容。

所以我的问题是,在 vxWorks 目标中,我可以只指定 partialImage.o 而不是 PRJ_OBJS 吗?

为什么现有的 vxWorks 规则不这样做呢?

4

1 回答 1

0

我对此进行了测试。我们可以使用 partialImage.o 或 PRJ_OBJS。

就我而言,使用 partialImage.o 很有帮助。因为我将目标 partialImage.o 和 vxworks 分离到不同的 make 级别。(partialImage.o 在较低级别)。

因此,在生成 partialImag.o 时,我可以添加除 PRJ_OBJS 之外的更多目标文件(如 dataSegPad.o、usrEntry.o、version.o 等)。

然后在更高级别使用此 partialImage.o 生成 vxworks image.o。这避免了将文件(dataSegPad.o、usrEntry.o、version.o)显式添加到 vxworks 目标(因为它们已经包含在 partialImage 中。

PS:注意 partialImage.o 是一个可重定位文件,所以不要包含像 ctdt.o、symTbl.o 这样的文件,因为只有在生成可执行文件时才需要包含它们

于 2015-07-16T23:16:06.480 回答