Судя по вопросу, на который вы ссылаетесь, и тегу Linux, я предполагаю, что вы используете GNU ld
.
Краткий ответ для GNU ld
: да, разделы можно размещать по определенным адресам.
Более длинный ответ заключается в том, что для этого вам потребуется создать собственный скрипт компоновщика, для которого можно указать -T для ld
. Если вы используете gcc
в качестве оболочки около ld
, вам нужно будет передать его компоновщику через опцию gcc
-Wl,
.
Скрипт компоновщика должен включать что-то вроде следующего:
SECTIONS {
.text 0x08049000 :
{
foo.o (.text)
bar.o (.text)
}
}
Однако следует обратить внимание на то, что опция -T заменяет скрипт компоновщика по умолчанию, который использует ld. Вы можете изменить скрипт компоновщика по умолчанию, чтобы сделать то, что вы хотите. Сценарий компоновщика по умолчанию можно сбросить, передав параметр --verbose
в ld
без каких-либо других параметров.
Дополнительная информация о скриптах компоновщика доступна в Руководстве по LD .