GNU/Linux >> Tutoriels Linux >  >> Linux

Ubuntu reconnaît l'exécutable en tant que bibliothèque partagée et ne l'exécutera pas en cliquant sur

J'ai corrigé ce comportement en ajoutant la ligne suivante dans le fichier .pro de mon projet dans QT :

QMAKE_LFLAGS += -no-pie

Le comportement se produit parce que les nouvelles distributions Ubuntu définissent l'indicateur de lien par défaut GCC -pie, qui marque e_type comme ET_DYN sur le fichier binaire. Par conséquent, le système d'exploitation reconnaît comme bibliothèque partagée.

Pour contourner ce problème, il peut être nécessaire d'ajouter -no-pie sur l'option du compilateur.


Linux
  1. Lorsque les fichiers exécutables ne le sont pas ?

  2. Créer et supprimer des fichiers d'échange dans Ubuntu

  3. Configurer un vhost Apache sur Ubuntu 20.04 et Debian 10

  4. Avertissement libpng :version libpng incompatible dans l'application et la bibliothèque

  5. Threads et descripteurs de fichiers

Comment exécuter des fichiers .bin et .run dans Ubuntu

Comment vérifier la version d'Ubuntu - Méthodes rapides et faciles

Comment créer et exécuter un script shell dans Ubuntu 22.04

Comment partager un fichier entre Ubuntu et Windows 10 ?

libstdc++.so.5 :impossible d'ouvrir le fichier objet partagé - mais la bibliothèque est installée et à jour

Différence entre les objets partagés (.so), les bibliothèques statiques (.a) et les DLL (.so) ?