Lütfen 64bit saldırısında ladosc oluşturmaya yardım edin


0

Bu, savy kod için bir soru, ben değilim ... Ben ladosc adlı bir dizi eski ladspa eklentileri oluşturmaya çalışıyorum (onları google kodunda bulabilirsiniz ) ama yapabileceğim hatalar var ' için bir geçici çözüm bulamadım.

Makefile:

    DESTINATION_DIR=~/.ladspa
    LIBLO_STATIC=/usr/lib/liblo.a

    install: install_op install_osc
    install_op: op.so
    mkdir -p ${DESTINATION_DIR}
    cp op.so ${DESTINATION_DIR}/.ladspa
    op.so: operator.o
    ld operator.o -o op.so -shared
    operator.o: operator.c
    gcc -c operator.c
    install_osc: osc.so
    mkdir -p ${DESTINATION_DIR}
    cp osc.so ${DESTINATION_DIR}/.ladspa
    osc.so: osc.o ${LIBLO_STATIC}
    ld osc.o ${LIBLO_STATIC} -o osc.so -shared
    osc.o: lad-osc.c
    gcc -c -g lad-osc.c -o osc.o
    clean:
    rm *.o *~ *.so

Configure betiği yoktur ve yaptığım zaman, bağlayıcı aşağıdaki hatayı atar:

ld: operator.o: relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
operator.o: could not read symbols: Bad value

Makefile içindeki gcc çağrılarına -fPIC bayrakları eklediğimde build farklı çalışıyor ve linker şu hatayı veriyor:

ld osc.o /usr/lib/liblo.a -o osc.so -shared
ld: /usr/lib/liblo.a(liblo_la-address.o): relocation R_X86_64_32 against     `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib/liblo.a: could not read symbols: Bad value

Anlamadım bunu. Liblo'yu yeniden derlemem gerektiği anlamına mı geliyor? Doğrudan Ubunut depolarından alınır.

Bu sorunlar, yaklaşık 3 yıl önce proje sayfalarında google kodunda başka bir kişi tarafından gündeme getirildi, ancak geliştirici tepki vermedi.

Ben zaten açıklamalar aradım ve pozisyon bağımsız kodu ve 32bit ve 64bit arasındaki farklar hakkında birçok şey buldum ama sorunum için bir çözüm bulmak için yeterince anlamıyorum.

Birileri bu eklentileri çalıştırmam için bana yardım edebilir mi?

Şerefe, Thomas

Yanıtlar:


1

Geliştirici ile iletişime geçtim ve derlememe yardımcı oldu.

Ben değiştirmek zorunda kaldık liblo.aile liblo.so(.bu paylaşılan lib ve .a değildir) makefile ile derlemek -fPICgcc için bayraklar.

Şimdi eklentileri derleyin. Onları fonksiyonel olarak test edemedim, ancak Ardor'da gayet iyi açıyorlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.