Por favor ajude a construir ladosc em 64bit raring

0

Esta é uma pergunta para o código savy, que eu não sou ... Eu estou tentando construir um conjunto de plug-ins antigos ladspa chamado ladosc (você pode encontrá-los em http://code.google.com/p/noisesmith-linux-audio/downloads/detail?name = ladosc.tar.bz2 & amp; can = 2 & amp; q="> google-code ) mas há erros nos quais não consigo encontrar uma solução alternativa.

O 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

Não há script de configuração e, quando eu faço, o vinculador gera o seguinte erro:

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

Quando eu adiciono sinalizadores -fPIC às chamadas do gcc no makefile, a compilação é executada de forma diferente e o vinculador dá o seguinte erro:

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

Eu não entendo isso. Isso significa que eu tenho que recompilar liblo? É tirado diretamente do repositório Ubunut.

Esses problemas já foram levantados por outras pessoas nas páginas do projeto no google code há cerca de 3 anos, mas o desenvolvedor não reagiu.

Eu já procurei por explicações e encontrei muitas coisas sobre código independente de posição e diferenças entre 32 e 64 bits, mas não entendi o suficiente para encontrar uma solução para o meu problema.

Alguém pode me ajudar a colocar esses plug-ins em funcionamento?

Felicidades, Thomas

    
por loopt 07.08.2013 / 15:18

1 resposta

1

Entrei em contato com o desenvolvedor e ele me ajudou a compilá-lo.

Eu tive que substituir o liblo.a por liblo.so (.so é uma biblioteca compartilhada e .a não é) no makefile e compilar com -fPIC flags para gcc.

Agora os plug-ins são compilados. Não poderia testá-los funcionalmente, ainda, mas eles se abrem bem no Ardour.

    
por loopt 07.08.2013 / 19:46