2016-08-06 2 views
3

Я пытаюсь перекрестно скомпилировать libsndfile для использования в intel edison с возможностями flac. Я успешно скомпилирован FLAC, OGG и Vorbis в мой крест набора инструментов, но когда я бегу ./configure это дает мне следующий вывод:Компиляция libsndfile, и он не находит FLAC

checking for pkg-config... /opt/poky-edison/1.7.3/sysroots/i686-pokysdk-linux/usr/bin/pkg-config 
checking pkg-config is at least version 0.9.0... yes 
checking for flac >= 1.3.1 ... no 
checking for ogg >= 1.1.3 ... yes 
checking for vorbis >= 1.2.3 ... yes 
checking for vorbisenc >= 1.2.3 ... yes 

configure: WARNING: *** One or more of the external libraries (ie libflac, libogg and 
configure: WARNING: *** libvorbis) is either missing (possibly only the development 
configure: WARNING: *** headers) or is of an unsupported version. 
configure: WARNING: *** 
configure: WARNING: *** Unfortunately, for ease of maintenance, the external libs 
configure: WARNING: *** are an all or nothing affair. 

Мои экологические переменные установлены таким образом:

export SDKTARGETSYSROOT=/opt/poky-edison/1.7.3/sysroots/core2-32-poky-linux 
export PATH=/opt/poky-edison/1.7.3/sysroots/i686-pokysdk-linux/usr/bin:/opt/poky-edison/1.7.3/sysroots/i686-pokysdk-linux/usr/bin/i586-poky-linux:$PATH 
export PKG_CONFIG_SYSROOT_DIR=$SDKTARGETSYSROOT 
export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig 
export CONFIG_SITE=/opt/poky-edison/1.7.3/site-config-core2-32-poky-linux 
export OECORE_NATIVE_SYSROOT="/opt/poky-edison/1.7.3/sysroots/i686-pokysdk-linux" 
export OECORE_TARGET_SYSROOT="$SDKTARGETSYSROOT" 
export OECORE_ACLOCAL_OPTS="-I /opt/poky-edison/1.7.3/sysroots/i686-pokysdk-linux/usr/share/aclocal" 
export PYTHONHOME=/opt/poky-edison/1.7.3/sysroots/i686-pokysdk-linux/usr 
export CC="i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer --sysroot=$SDKTARGETSYSROOT" 
export CXX="i586-poky-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer --sysroot=$SDKTARGETSYSROOT -I${SDKTARGETSYSROOT}/usr/include/c++/4.9.1 -I${SDKTARGETSYSROOT}/usr/include/c++/4.9.1/i586-poky-linux" 
export CPP="i586-poky-linux-gcc -E -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer --sysroot=$SDKTARGETSYSROOT" 
export AS="i586-poky-linux-as " 
export LD="i586-poky-linux-ld --sysroot=$SDKTARGETSYSROOT" 
export GDB=i586-poky-linux-gdb 
export STRIP=i586-poky-linux-strip 
export RANLIB=i586-poky-linux-ranlib 
export OBJCOPY=i586-poky-linux-objcopy 
export OBJDUMP=i586-poky-linux-objdump 
export AR=i586-poky-linux-ar 
export NM=i586-poky-linux-nm 
export M4=m4 
export TARGET_PREFIX=i586-poky-linux- 
export CONFIGURE_FLAGS="--target=i586-poky-linux --host=i586-poky-linux --build=i686-linux --with-libtool-sysroot=$SDKTARGETSYSROOT" 
export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types" 
export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types" 
export LDFLAGS="" 
export CPPFLAGS="" 
export KCFLAGS="--sysroot=$SDKTARGETSYSROOT" 
export OECORE_DISTRO_VERSION="1.7.3" 
export OECORE_SDK_VERSION="1.7.3" 
export ARCH=x86 
export CROSS_COMPILE=i586-poky-linux- 

но библиотека flac существует (в /opt/poky-edison/1.7.3/sysroots/core2-32-poky-linux/usr/local)! Я попытался добавить явные пути в библиотеку flac, которую я скомпилировал в нескольких местах, но ничего не меняет. есть ли конкретное место, которое я должен попробовать изменить настройки?

ответ

2

Эдисон SDK на самом деле поставляется с FLAC уже присутствующим, но старше. Компиляция моей собственной версии в местоположении usr/local/lib в моем SDK не обновила pkgConfig, поскольку она помещала pkgconfig в /usr/local/ib/pkgconfig.

Простейшим решением является добавление пути, разделенного : в переменную PKG_CONFIG_PATH в сценарии настройки среды. Например, строка 4 становится: export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig:$SDKTARGETSYSROOT/usr/local/lib/pkgconfig

Вы также можете пройти путь во время шага ./config, но я думаю, что добавление его к переменной - это лучшее долгосрочное решение.

Смежные вопросы