Почему бы не использовать partImage.o для создания образа vxWorks вместо того, чтобы перечислять все объектные файлы для компоновщика
Из 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 ${@}
В одном из моих проектов я разделил partImage и vxWorks на отдельные уровни dir, так как я хотел добавить еще несколько вещей в partailImage.o.
Так что мой вопрос в цели vxWorks, я могу просто указать частичное изображение.o вместо PRJ_OBJS?
Почему существующие правила vxWorks не делают это таким образом?
1 ответ
Я проверял это. Мы можем использовать partImage.o или PRJ_OBJS.
В моем случае было полезно использование partImage.o. Потому что я разделил цели partImage.o и vxworks на разные уровни make. (partImage.o на более низком уровне).
Таким образом, при генерации partImag.o я могу добавить больше объектных файлов (таких как dataSegPad.o, usrEntry.o, version.o и т. Д.), Кроме PRJ_OBJS.
А позже используйте этот частичный имидж.o на более высоком уровне make для генерации vxworks image.o. Это позволяет избежать явного добавления файлов (dataSegPad.o, usrEntry.o, version.o) к цели vxworks (так как они уже включены в partImage.
PS: имейте в виду, что partImage.o - это перемещаемый файл, поэтому не включайте такие файлы, как ctdt.o, symTbl.o, поскольку они должны быть включены только при создании исполняемого файла.