Что такое crtbegin.o и crtbegin_dynamic.o? - PullRequest
5 голосов
/ 26 апреля 2010

При отладке ошибки ссылки (undefined reference to _dso_handle) с помощью цепочки инструментов Android x86 я заметил, что она статически связывает crtbegin_dynamic.o. Какова цель этого файла? В каталоге установки набора инструментов есть еще один похожий crtbegin.o, в котором содержится отсутствующий символ (_dso_handle). В чем разница между crtbegin.o и crtbegin_dynamic.o?

Ответы [ 2 ]

11 голосов
/ 15 декабря 2010

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

0 голосов
/ 05 мая 2010

Я думаю, что они относятся к динамическим библиотекам (разделяемым объектам) и исполняемым файлам, но не совсем уверены. Надеюсь, это даст вам преимущество.

...