-rdynamic
(veya bağlantı düzeyinde --export-dynamic
) tam olarak ne yapar ve -fvisibility*
bayrakları veya görünürlüğü pragma
s ve __attribute__
s tarafından tanımlanan sembol görünürlüğü ile nasıl ilişkilidir?Tam olarak ne gerekli ve ne zaman gerekli?
--export-dynamic
için ld(1) bahseder:
... Bunun yerine bazı diğer dinamik daha "Dlopen" kullanmak program tarafından belirlenen semboller geri başvurmak gerekir dinamik bir nesneyi yüklemek için ise nesnesi, daha sonra programın kendisini bağlarken bu seçeneği kullanmak için muhtemelen gerekir. ...
Bunu tamamen anladığımdan emin değilim. -rdynamic
olmadan çalışmayan ancak bununla birlikte çalışan bir örnek verebilir misiniz?
Düzenleme: Aslında bir kukla kütüphanelerin çift derleme çalıştı (tek dosya, çok dosya, çeşitli -O seviyeleri, bazı arası işlev çağrıları, bazı gizli semboller, bazı görünür) ile ve -rdynamic
olmadan ve şu ana kadar byte-özdeş çıkışları elde ettim (diğer tüm bayrakları sabit tutarken), ki bu oldukça şaşırtıcıdır.
Örneğin, man sayfasının ne anlama geldiğini mükemmel bir şekilde açıklar. Çok teşekkürler! – PSkocik