C ++ имеет глобальные конструкторы и деструкторы.crtbegin.o и crtend.o имеют дело с вызовом этих конструкторов и деструкторов.Варианты crtbegin.o, такие как crtbeginS.o, делают то же самое для других типов исполняемых файлов, таких как статические исполняемые файлы и разделяемые библиотеки.