GNU/Linux >> Linux Esercitazione >  >> Linux

Collega il file .so al file .cpp tramite la compilazione g++

ora da quello che posso vedere il comando è -l + filename , ad esempio il nome del mio file è directory/libtest.so sarebbe -ldirectory/libtest.so

No, non è corretto. Dovrebbe essere -Ldirectory -ltest cioè usi -L per aggiungere una directory ai percorsi di ricerca in cui il linker cercherà le librerie e tu dici a quali librerie collegarti con -l , ma per collegarsi a libtest.so o libtest.a tu dici -ltest senza il lib prefisso o l'estensione del file.

Puoi link nominando il file in modo esplicito, senza -L o -l opzioni, cioè solo directory/libtest.so , ma per le librerie dinamiche è quasi sempre la cosa sbagliata da fare, poiché incorpora quel percorso esatto nell'eseguibile, quindi la stessa libreria deve trovarsi nello stesso posto quando il programma viene eseguito. In genere vuoi collegarti ad esso per nome (non percorso) in modo che la libreria con quel nome possa essere utilizzata da qualsiasi posizione in fase di esecuzione.


Questa è una procedura passo passo su come creare e collegare un file .so con .cpp

  1. Crea il file .cpp che desideri convertire in .so.
    Esempio -
    #include<stdio.h> int add(int a , int b) { return a+b;}

    Salvalo con il nome add.cpp

  2. Crea .so con il seguente comando
    gcc -c -fPIC add.cpp -o add.o

    Questo crea libadd.so

  3. Crea un file .cpp che utilizzerà questo file .so
    Esempio-
    #include<stdio.h> extern int add(int a, int b); int main(int argc, char** argv) { printf("Hello the output is %d \n",add(10,15)); return 0; }

    Salvalo come main_file.cpp

  4. Crea un file .o da questo file usando questo comando
    g++ -c main_file.cpp

  5. Collega .so con .o usando questo comando
    g++ -o prog main_file.o -L. -ladd

    Qui L specifica la cartella con il file .so
    E -l specifica il nome della libreria .so

  6. Eseguire il programma con il comando
    ./prog


Linux
  1. Come inserire un collegamento a un file in WordPress

  2. Rimuovi le righe vuote in un file di testo tramite grep

  3. Invio file tramite netcat

  4. cp -L contro cp -H

  5. Determina se il filesystem o la partizione è montata RO o RW tramite Bash Script?

Come creare un collegamento simbolico in Linux usando il comando Ln

Come scaricare file utilizzando Wget tramite proxy in Linux

Come proteggere con password i siti Web tramite .htaccess

Come caricare file tramite File Manager

Come eliminare file/cartelle tramite File Manager

Che cosa sono i collegamenti simbolici in Linux? Come creare collegamenti simbolici?