¿Qué es crtbegin.o y crtbegin_dynamic.o?

Al depurar un error de enlace ( undefined reference to _dso_handle ) utilizando la herramienta Android x86, me di cuenta de que está vinculando crtbegin_dynamic.o . ¿Cuál es el propósito de este archivo? Hay otro crtbegin.o similar en el directorio de instalación de la cadena de herramientas que contiene el símbolo que falta (_dso_handle). ¿Cuál es la diferencia entre crtbegin.o y crtbegin_dynamic.o?

Creo que se refieren a bibliotecas dinámicas (objetos compartidos) y ejecutables, pero no estoy seguro. Espero que esto le proporciona una ventaja.

C ++ tiene constructores y destructores globales. Crtbegin.o y crtend.o tratan de llamar a esos constructores y destructores. Las variantes de crtbegin.o tales como crtbeginS.o hacen lo mismo para otros tipos de ejecutables como ejecutables estáticos y bibliotecas compartidas.

  • ¿Por qué puedo mover con éxito un archivo en Linux mientras se está escribiendo?
  • shell script en android da [: no encontrado
  • ¿Cómo sincronizar el tiempo de Kernel y el tiempo de logcat?
  • Otra vez: SDL init falla, la razón es: No hay dispositivo de vídeo disponible
  • Search.h-No existe tal archivo o directorio mientras se porta libtiff en Android-tiff 4.0.1
  • Eliminar paquetes de SDK de Android de la línea de comandos
  • ¿Cómo evitar las filtraciones de Eclipse en XServer al editar archivos XML de Android?
  • Tipo de plataforma Qt Check: Móvil o Escritorio
  • Comando de dispositivos adb no funciona
  • Compartir un espacio de trabajo Eclipse entre Linux y Windows
  • Repo 'bisect' para la depuración de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.