SORU
18 Mayıs 2010, Salı


Nasıl belirli bir abone olarak giriş bir sürüm için link alabilir miyim?

Ben Ubuntu Lucid 10.04 bilgisayarımda bir şey derlerken abone olarak giriş karşı bağlı olur. Lucid kullanan abone olarak giriş bu 2.11. Eski bir abone olarak giriş ile başka bir bilgisayarda bu ikili çalıştırdığınızda, komut abone olarak giriş yok diyerek başarısız 2.11...

Bildiğim kadarıyla abone olarak giriş sembol sürüm kullanır. Özel sembol bir sürümü karşı bağlamak için gcc zorlayabilir miyim?

Beton kullanımı kola için gcc çapraz bir araç zinciri derlemeye çalışıyorum.

CEVAP
18 Mayıs 2010, Salı


Abone olarak giriş sembol sürüm kullanır bu doğru. Eğer merak ediyorsanız, sembol sürüm oluşturma uygulaması abone olarak giriş 2.1 tanıtıldı here açıklanan ve Güneş sembolü sürüm oluşturma şeması here açıklanan bir uzantısıdır.

Bir seçeneği statik olarak senin ikili bağlantı. Bu muhtemelen en kolay seçenek.

Ayrıca, bir kök ortamı oluşturmak veya abone olarak giriş- . bir ile ikili oluşturabilirsin ^em>yeni=>abone olarak giriş-eskiçapraz derleyici.

http://www.trevorpounds.com blog yazısı göre Linking to Older Versioned Symbols (glibc), Olası herhangi bir sembol eski bir diğeri de aynı kullanarak geçerli olduğu sürece, karşı bağlı olduğu kuvvet.symverilk etapta sürüm bilgisi sembolleri tanımlamak için kullanılan pseudo-op. Aşağıdaki örnek blog post dan alınmıştır.

Aşağıdaki örnek abone olarak giriş bu realpath kullanır, ama eski bir sürüm 2.2.5 karşı bağlı olduğundan emin olur.

#include <limits.h>
#include <stdlib.h>
#include <stdio.h>

__asm__(".symver realpath,realpath@GLIBC_2.2.5");
int main()
{
    char* unresolved = "/lib64";
    char  resolved[PATH_MAX 1];

    if(!realpath(unresolved, resolved))
        { return 1; }

    printf("%s\n", resolved);

    return 0;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012