GNU/Linux >> Tutoriales Linux >  >> Linux

Ubuntu reconoce el ejecutable como biblioteca compartida y no lo ejecutará haciendo clic en

He corregido este comportamiento agregando la siguiente línea en el archivo .pro de mi proyecto en QT:

QMAKE_LFLAGS += -no-pie

El comportamiento se produce porque las distribuciones de ubuntu más nuevas establecen el indicador de enlace predeterminado de GCC -pie, que marca e_type como ET_DYN en el archivo binario. En consecuencia, el Sistema Operativo reconoce como Biblioteca Compartida.

Para evitarlo, puede ser necesario agregar -no-pie en la opción del compilador.


Linux
  1. ¿Carga de bibliotecas compartidas y uso de RAM?

  2. ¿Cómo incrustar la información de la versión en la biblioteca compartida y el binario?

  3. libstdc++.so.5:no se puede abrir el archivo de objeto compartido, pero la biblioteca está instalada y actualizada

  4. (C/C++) ¿Cómo generar un archivo ejecutable que pueda ejecutarse tanto en Windows como en Linux?

  5. ¿Diferencia entre objetos compartidos (.so), bibliotecas estáticas (.a) y DLL (.so)?

Cómo ejecutar archivos .bin y .run en Ubuntu

Cómo verificar la versión de Ubuntu:métodos rápidos y fáciles

Cómo crear y ejecutar un script de shell en Ubuntu 22.04

¿Cómo compartir archivos entre Ubuntu y Windows 10?

¿Cómo hacer que el sistema Ubuntu arranque y se ejecute completamente en RAM?

Ubuntu Linux - VHDX compartido