Почему бы не использовать 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, поскольку они должны быть включены только при создании исполняемого файла.

Другие вопросы по тегам