C++ xcode uygulamam için bazı statik kitaplıklardan (kendi kütüphanelerim) tüm seçilmemiş sembollere bağlanmaya çalışıyorum. 'Strip' ile ilgili tüm özellikleri denedim ('strip' özelliklerini arayarak), ancak, özellikle sınıflar, ilgisiz semboller bağlı değildir.X ++ 'da C++ ölü kod sıyırma nasıl devre dışı bırakılır
Ayrıca -r bağlayıcı bayrak denedim, ama ': -r ve -dead_strip birlikte kullanılamaz ld'
Ben bağlayıcı bayrak '-no_dead_strip' ekleyerek denedim ama sonra bağlayıcı bana '-no_dead_strip' söyler : o zaman bağlayıcı yalnızca şikayet göz ardı edilir.
Aynı sonuçları "Apple LLVM" ve "LLVM GCC" ile de elde ediyorum.
Yani, sorum şu: tüm ölü kodların sıyırmasını kapatmak ve bağlanacak olan ilgisiz sınıfları zorlamak için hangi bağlayıcı bayrağını veya hedef özelliklerini kullanmalıyım?
Belki de '--whole-archive' bağlayıcı bayrağını deneyiniz? –
Android'in NDK'sı, 'native glue' (statik kütüphane) 'de, uygulama içermeyen app_dummy() 'adlı boş bir fonksiyon içeriyor. Bunu istemci tarafından (söz konusu kitaplığa karşı bağlantılar) çağırmak, bu derleme birimindeki sembollerin sıyrılmasını önler. Daha zarif bir yöntem arıyordum ama hiç yokmuş gibi görünüyor. – pauluss86