GNU/Linux >> Znalost Linux >  >> Linux

Propojte soubor .so se souborem .cpp pomocí kompilace g++

nyní z toho, co vidím, je příkaz -l + filename , například můj název souboru je directory/libtest.so bylo by to -ldirectory/libtest.so

Ne, to není správné. Mělo by to být -Ldirectory -ltest tj. používáte -L přidat adresář do vyhledávacích cest, kde bude linker hledat knihovny, a vy řeknete, na které knihovny se má odkazovat pomocí -l , ale pro odkaz na libtest.so nebo libtest.a řeknete -ltest bez lib prefix nebo příponu souboru.

můžete odkaz explicitním pojmenováním souboru bez -L nebo -l možnosti, tj. jen directory/libtest.so , ale u dynamických knihoven je to téměř vždy nesprávná věc, protože vkládá přesnou cestu do spustitelného souboru, takže stejná knihovna musí být při spuštění programu na stejném místě. Obvykle se na ni chcete propojit jménem (ne cestou), aby knihovnu s tímto názvem bylo možné používat z libovolného umístění za běhu.


Toto je postup krok za krokem, jak vytvořit a propojit soubor .so se souborem .cpp

  1. Vytvořte soubor .cpp, který chcete převést na .so.
    Příklad -
    #include<stdio.h> int add(int a , int b) { return a+b;}

    Uložte jej pod názvem add.cpp

  2. Vytvořte .so pomocí následujícího příkazu
    gcc -c -fPIC add.cpp -o add.o

    Tím se vytvoří libadd.so

  3. Vytvořte soubor .cpp, který bude používat tento soubor .so
    Příklad-
    #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; }

    Uložte jej jako main_file.cpp

  4. Pomocí tohoto příkazu vytvořte z tohoto souboru soubor .o
    g++ -c main_file.cpp

  5. Propojte .so s .o pomocí tohoto příkazu
    g++ -o prog main_file.o -L. -ladd

    Zde L určuje složku se souborem .so
    A -l určuje název knihovny .so

  6. Spusťte program pomocí příkazu
    ./prog


Linux
  1. 'SDL.h nebyl nalezen žádný takový soubor nebo adresář' při kompilaci

  2. Odeslání souboru přes netcat

  3. cp-L vs. cp-H

  1. Jak vytvořit soubor ve Správci souborů Plesk

  2. Blokování přístupu prostřednictvím souboru .htaccess

  3. Zjistit, zda je souborový systém nebo oddíl připojen RO nebo RW pomocí skriptu Bash?

  1. Vysvětlení pevných odkazů a měkkých odkazů v Linuxu

  2. Jak vložit odkaz na soubor ve WordPressu

  3. Odstraňte prázdné řádky v textovém souboru pomocí grep