来自规则.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等文件,因为只有在生成可执行时才必须包括它们