Связывание в качестве первого объекта может работать так же хорошо, как вы показываете, но в документации упоминается использование скрипта компоновщика и добавление crt0.o в качестве STARTUP() - я не слишком хорошо знаком со скриптами компоновщика, но вы можете найти значение по умолчанию скрипт компоновщика и, возможно, создать/настроить его:
Синтаксис скрипта связывания: http://wiki.osdev.org/Linker_Scripts
http://sourceware.org/binutils/docs-2.19/ld/Scripts.html#Scripts
The linker always uses a linker script. If you do not supply one yourself, the linker
will use a default script that is compiled into the linker executable. You can use the
`--verbose' command line option to display the default linker script. Certain command
line options, such as `-r' or `-N', will affect the default linker script.
То же самое, вероятно, можно сделать с другими системными библиотеками, которые всегда должны быть частью компоновки.
Можно добавить все в командной строке, но в конце концов это немного утомительно.
Вы получаете какие-либо ошибки или неправильные результаты, так как вы спрашиваете или что?
person
nicomen
schedule
24.08.2010