Настроить тест со статическим lib
Я пытаюсь выполнить кросс-компиляцию libpng для RaspberryPi в Ubuntu 14.04 (x_64) с помощью zlib, но настройка завершается неудачно с
настроить:11400: arm-linux-gnueabihf-gcc -o conftest -g -O2 -I/home/user/RPI_DEV/lib/ включить conftest.c -lz -lm >&5 /home/user/RPI_DEV/xtools/arm-bcm2708/ НКУ-Линаро-рычажного линукс-gnueabihf-raspbian-x64/ бен /../ Библиотека / GCC / арм-линукс-gnueabihf/4.8.3/../../../../ рычажного линукс -gnueabihf/bin/ld: не удается найти -lz collect2: ошибка: ld вернул 1 состояние завершения настройки:11400: $? = 1 настройка: сбой программы был: ....
Поскольку я использую toolchain для руки, arm-ld не может найти zlib.
Есть ли какая-либо опция для настройки не для компиляции с разделяемой библиотекой, а для попытки со статической библиотекой (например, -static -lz).
Команда
./configure --enable-static=true --enable-shared=false --with-zlib-include="/home/user/RPI_DEV/lib/include" --with-zlib-lib="/home/user/RPI_DEV/lib/lib" LDFLGS="-L/home/user/RPI_DEV/lib/lib" CPPFLAGS="-I/home/user/RPI_DEV/lib/include" -enable-static --host=arm-linux-gnueabihf --prefix=/home/user/RPI_DEV/lib --exec-prefix=/home/user/RPI_DEV/lib
2 ответа
Вам нужно сделать кросс-сборку и установить zlib в свою цепочку инструментов, прежде чем пытаться использовать ее в другом проекте.
То, что вы делаете, может работать, но только если вы правильно написали LDFLAGS:
LDFLGS = "- L / дом / пользователь /RPI_DEV/ Библиотека / Библиотека"
Обратите внимание на пропущенное "А". Я не знаю, почему ваша вторая попытка сработала, учитывая, что у вас была такая же орфографическая ошибка; возможно, у вас были правильные LDFLAGS в вашей среде?
В любом случае, где-то должно быть руководство по кросс-разработке Ubuntu, которое объясняет, как это сделать. Это немного не по теме, но для Gentoo вы используете 'crossdev' для установки цепочки инструментов, а затем специфичную для crossdev версию обычного механизма установки пакетов ([host]-emerge) для установки zlib в цепочку инструментов.
Кроме того, аргументы --with-zlib-include и --with-zlib-lib не поддерживаются ни одной текущей версией libpng, которую я могу найти. Если вы кросс-компилируете libpng для RPi (или даже для любой системы ARM), вы должны использовать последнюю версию 1.6, которую вы можете найти.
Если кто-то не решит это ПРАВИЛЬНЫМ способом, это хак, который я сделал.
- Откройте файл configure.ac
- Найти и закомментировать строку
AC_CHECK_LIB(z, zlibVersion,, AC_ERROR([zlib не установлен]))
Программа настройки пройдет проверку на наличие zlib, а затем добавит zlib вручную
LDFLGS="-L/home/user/RPI_DEV/lib/lib -L/home/user/RPI_DEV/lib/lib/libz.a"
- Запустите автоконф
- Запустите./configure ...