GNU/Linux >> Belajar Linux >  >> Linux

Tautkan file .so ke file .cpp melalui kompilasi g++

sekarang dari apa yang saya lihat perintahnya adalah -l + filename , misalnya nama file saya adalah directory/libtest.so itu akan menjadi -ldirectory/libtest.so

Tidak, itu tidak benar. Seharusnya -Ldirectory -ltest yaitu Anda menggunakan -L untuk menambahkan direktori ke jalur pencarian tempat penaut akan mencari pustaka, dan Anda menyebutkan pustaka mana yang akan ditautkan dengan -l , tetapi untuk menautkan ke libtest.so atau libtest.a Anda mengatakan -ltest tanpa lib awalan atau ekstensi file.

Anda bisa link dengan menamai file secara eksplisit, tanpa -L atau -l pilihan, yaitu hanya directory/libtest.so , tetapi untuk perpustakaan dinamis itu hampir selalu merupakan hal yang salah untuk dilakukan, karena menyematkan jalur yang tepat itu ke dalam yang dapat dieksekusi, sehingga perpustakaan yang sama harus berada di tempat yang sama saat program dijalankan. Anda biasanya ingin menautkannya dengan nama (bukan jalur) sehingga pustaka dengan nama tersebut dapat digunakan dari lokasi mana pun pada waktu proses.


Ini adalah prosedur langkah demi langkah tentang cara membuat dan menautkan .so dengan file .cpp

  1. Buat file .cpp yang ingin Anda konversi menjadi .so.
    Contoh -
    #include<stdio.h> int add(int a , int b) { return a+b;}

    Simpan dengan nama add.cpp

  2. Buat .so dengan perintah berikut
    gcc -c -fPIC add.cpp -o add.o

    Ini menciptakan libadd.so

  3. Buat file .cpp yang akan menggunakan file .so ini
    Contoh-
    #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; }

    Simpan sebagai main_file.cpp

  4. Buat file .o dari file ini menggunakan perintah ini
    g++ -c main_file.cpp

  5. Tautkan .so dengan .o menggunakan perintah ini
    g++ -o prog main_file.o -L. -ladd

    Di sini L menentukan folder dengan file .so
    Dan -l menentukan nama perpustakaan .so

  6. Jalankan program dengan perintah
    ./prog


Linux
  1. Cara menyisipkan tautan ke file di WordPress

  2. Hapus baris kosong dalam file teks melalui grep

  3. Mengirim file melalui netcat

  1. Pindahkan file dan tinggalkan tautan lunak

  2. cp -L vs cp -H

  3. Tentukan apakah sistem file atau partisi dipasang RO atau RW melalui Bash Script?

  1. Cara Membuat File di Manajer File Plesk

  2. Memblokir akses melalui file .htaccess

  3. Bagaimana cara mengaktifkan ExecCGI melalui file .htaccess?