Пожалуйста, помогите построить Ladosc на 64-битном рейтинге

Это вопрос для кода, который я не использую ... Я пытаюсь создать набор старых плагинов ladspa под названием ladosc (их можно найти в google-code . ]) но есть ошибки, для которых я не могу найти обходной путь.

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

Нет сценария конфигурации, и когда я делаю, компоновщик выдает следующую ошибку:

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

Когда я добавляю флаги -fPIC в gcc вызовы в make-файле сборка выполняется по-другому, и компоновщик выдает следующую ошибку:

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

Я не понимаю этого. Значит ли это, что я должен перекомпилировать liblo? Он взят прямо из репозитория Убунута.

Эти проблемы были подняты кем-то еще на страницах проекта в коде Google около 3 лет назад, но разработчик не отреагировал.

Я уже искал объяснения и нашел много материала о позиционно-независимом коде и различиях между 32-битным и 64-битным, но я не понимаю достаточно, чтобы найти решение для моей проблемы.

Кто-нибудь может мне помочь запустить эти плагины?

Приветствия, Томас

0
задан 7 August 2013 в 17:18

1 ответ

Я связался с разработчиком, и он помог мне скомпилировать его.

Мне пришлось заменить liblo.a на liblo.so (.so - это общая библиотека, а .a - нет) в make-файле и скомпилировать с -fPIC флагами для gcc.

Теперь плагины компилируются. Пока что не могу их функционально протестировать, но они хорошо открываются в Ардоре.

0
ответ дан 7 August 2013 в 17:18

Другие вопросы по тегам:

Похожие вопросы: