ошибка связывания 32-битного приложения с использованием libexpat в Ubuntu 14.04 64bit

Я пытаюсь создать версию пакетов fontconfig для i386, и сценарию configure не удается найти библиотеку экспатов, которая установлена ​​для обеих архитектур. Сбой команды сборки тестового приложения:

> gcc-4.8 -m32 -o conftest expat.test.c -lexpat 
/usr/bin/ld: cannot find -lexpat
collect2: error: ld returned 1 exit status
Exit 1
ldd: ./conftest: No such file or directory

Тем не менее, когда я передаю полный путь к библиотеке вместо -lexpat, команда завершается успешно:

> gcc-4.8 -m32 -o conftest expat.test.c /lib/i386-linux-gnu/libexpat.so.1 ; ldd conftest
    linux-gate.so.1 =>  (0xf7759000)
    libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf76f8000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7549000)
    /lib/ld-linux.so.2 (0xf775a000)

Пакет lib32gcc-4.8-dev установлен.

Может ли это быть связано с тем, что мне пришлось создавать i686-linux-gnu-objcopy вручную и символьные ссылки для ditto-strip с / usr / bin / {objcopy, strip}, а также отсутствовал i686-linux-gnu- команда gcc?

0
задан 26 June 2014 в 12:38

2 ответа

Я нашел еще лучшее решение: Я создал свой собственный PPA на панели запуска. Вы переходите через обручи только однажды, чтобы настроить ключ и установить необходимые дополнительные пакеты, но тогда можно полагаться на buildbots для установки требований на 32 бита каждый раз, когда сборки на 32 бита требуются. Они решили ту проблему при помощи виртуальных машин на 32 бита и на 64 бита, тот способ, которым они не сталкиваются с конфликтами мультидуги или незначительными сбоями.

1
ответ дан 26 June 2014 в 12:38

У меня была та же самая проблема о 64-разрядном Linux. Разрешенный путем установки expat1-dev для 32-разрядного

Вот является командой

sudo apt-get install libexpat1-dev:i386
1
ответ дан 26 June 2014 в 12:38

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

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