GNU/Linux >> Linux Esercitazione >  >> Linux

Ubuntu riconosce l'eseguibile come libreria condivisa e non lo eseguirà facendo clic

Ho corretto questo comportamento aggiungendo la seguente riga al file .pro del mio progetto in QT:

QMAKE_LFLAGS += -no-pie

Il comportamento si verifica perché le distribuzioni Ubuntu più recenti impostano il flag di collegamento predefinito GCC -pie, che contrassegna e_type come ET_DYN nel file binario. Di conseguenza, il sistema operativo riconosce come libreria condivisa.

Per aggirare il problema, potrebbe essere necessario aggiungere l'opzione -no-pie nell'opzione del compilatore.


Linux
  1. Installa ed esegui Vagrant su Ubuntu 20.04

  2. Ubuntu – Disinstallazione del file *.run?

  3. Caricamento di librerie condivise e utilizzo della RAM?

  4. Quando i file eseguibili non lo sono?

  5. Avviso libpng:versione libpng incompatibile nell'applicazione e nella libreria

Come eseguire file .bin e .run in Ubuntu

Come controllare la versione di Ubuntu:metodi semplici e veloci

Come creare ed eseguire uno script di shell in Ubuntu 22.04

Come condividere file tra Ubuntu e Windows 10?

libstdc++.so.5:impossibile aprire il file oggetto condiviso, ma la libreria è installata e aggiornata

Differenza tra oggetti condivisi (.so), librerie statiche (.a) e DLL (.so)?