2016-08-06 6 views
3

flac 기능이있는 intel edison에서 사용할 libsndfile을 크로스 컴파일하려고합니다. 나는 성공적으로 내 크로스 툴체인에 FLAC, OGG, 및 보비스를 컴파일하지만 ./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이 있지만, 버전입니다. 내 SDK의 usr/local/lib 위치에 내 버전을 컴파일해도 pkgconfig가 /usr/local/ib/pkgconfig에 배치 되었기 때문에 pkgConfig가 업데이트되지 않았습니다.

가장 쉬운 해결 방법은 :으로 구분 된 경로를 환경 설정 스크립트의 변수 에 추가하는 것입니다. 예를 들어, 4 행은 다음과 같습니다. export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig:$SDKTARGETSYSROOT/usr/local/lib/pkgconfig ./config 단계 중에도 경로를 전달할 수 있지만 변수에 추가하면 더 나은 장기 솔루션이라고 생각합니다.