Связывание с первым объектом может работать так же хорошо, как вы отображаете, но в документах упоминается использование скрипта компоновщика и добавление 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.
То же самоевозможно, это можно сделать с другими системными библиотеками, которые всегда должны быть частью связи.
Хорошо добавлять все в командной строке, но в конце немного утомительно.
Выполучать какие-либо ошибки или неправильные результаты, так как вы спрашиваете или что?