为什么不使用partialImage.o生成vxWorks映像,而不是将所有对象文件都列在链接器中



来自规则.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分离为不同的目录级别,因为我想在partailImage.o.中再添加一些东西

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

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

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

在我的例子中,使用partialImage.o是有帮助的。因为我将目标partialImage.o和vxworks分离到不同的制作级别。(较低级别的partialImage.o)。

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

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

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

相关内容

  • 没有找到相关文章

最新更新