GNU/Linux >> Belajar Linux >  >> Linux

C++ -fvisibility=hidden -fvisibility-inlines-hidden

-fvisibility=hidden membuat semua simbol Anda tersembunyi secara default .

Apa yang harus Anda lakukan selanjutnya adalah memilih fungsi mana yang Anda inginkan agar dapat dilihat oleh pengguna yang menautkan ke perpustakaan Anda dan membuatnya terlihat dengan menandainya dengan atribut yang terlihat.

Mis.

void __attribute__((visibility("default"))) Exported()
{
    // ...
}

Ini mengurangi penyimpanan informasi simbol yang tidak perlu yang bersifat pribadi ke Objek Bersama.

Pertimbangkan objek bersama yang memiliki lebih dari 10.000 simbol (fungsi/variabel global), tetapi hanya 100 di antaranya yang merupakan fungsi publik yang dapat diakses oleh pengguna perpustakaan. Kami dapat membuat hanya 100 fungsi yang terlihat oleh orang lain dan 9.900 simbol lainnya akan dirahasiakan.

Ini juga dapat digunakan untuk mengurangi ukuran objek yang dibagikan, karena tabel relokasinya hanya memiliki 100 simbol informasi. Menggunakan flag ini bersama dengan -ffunction-sections -fdata-sections akan mengurangi ukuran objek bersama lebih lanjut dengan memiliki definisi yang relevan dengan 100 simbol tersebut.


Linux
  1. Mengapa Variabel Terlihat Dalam Subkulit?

  2. Apa Arti Simbol yang Ditampilkan Oleh Ls -f?

  3. Linux – Apakah Variabel Lingkungan Terlihat oleh Pengguna yang Tidak Memiliki Hak Di Linux?

  1. Windows 10 Tidak Terlihat Di Grub?

  2. Cara Memanggil Fungsi C di C++, Fungsi C++ di C (Campuran C dan C++)

  3. C++ Meningkatkan ASIO pengatur waktu periodik sederhana?

  1. C++/Assembly IDE di Linux

  2. Mendeteksi Windows atau Linux di C, C++

  3. Pengaruh usleep(0) di C++ di Linux