foo
kod adlı bir programım var. foo
, common.so
'a bağlıdır ve normal yolla bağlantılıdır (özür dilerim, teknik olarak bunu söylemiyorum). foo
çalıştığında,'yi dlopen()
kullanarak dinamik olarak yükler. Çok uzak çok iyi. Ayrıca, bar.so
, () dlopen()
common.so
yeniden yüklenir mi (okuduğumdan itibaren bağımlılık gerektiren her şeyi tekrarlı olarak yükler), yoksa yüklü olduğunu algılar mı? Yeniden yüklerse, bu programımda sorunlara neden olabilir mi? foo
ve bar.so
öğelerinin her ikisi de common.so
'daki değişiklikleri burada statik değişkenler haline getirecek şekilde görmelidir.Dlopen yeniden yüklemesi zaten yüklenmiş bağımlılıklar var mı? Eğer öyleyse, etkileri nelerdir?
Belki de tasarımımın değiştirilmesi veya -rdynamic
kullanımını gerektirmesi gerekiyor (ki bu da henüz tam olarak doğru şekilde anlamadığım)?
Teşekkürler :) Onların kendi izole kopyalarına sahip olduklarına veya böyle saçmalıklara sahip olabileceklerinden endişeliydim. Merak ettim, bunun yerine "ortak" olsaydı ne olacağını biliyor musun? –
İyi soru ... Benim tahminim "kötü şeyler" olurdu, ama aslında emin değilim. – Nemo
Evet, kötü şeyler de düşündüğüm şey ... Aslında bunu ilk başta yapıyordum. '-dynamic' kullanmam gerekiyordu, aksi halde birbirlerinin değişimlerini göremedikleri ortaya çıktı. –