簡體   English   中英

編譯 libsndfile,沒有找到 FLAC

[英]Compiling libsndfile, and it does not find FLAC

我正在嘗試交叉編譯 libsndfile 以便在具有 flac 功能的英特爾愛迪生上使用。 我已經成功地將 FLAC、OGG 和 VORBIS 編譯到我的交叉工具鏈中,但是當我運行./configure時,它會給我以下 output:

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 庫添加顯式路徑,但沒有什么區別? 有沒有我應該嘗試調整路徑的特定地方?

愛迪生SDK實際上已經提供FLAC,但版本。 將我自己的版本編譯到SDK中的usr/local/lib位置時沒有更新pkgConfig,因為它將pkgconfig放入/usr/local/ib/pkgconfig

最簡單的解決方案是將路徑上,由一個分離的添加:PKG_CONFIG_PATH在環境設置腳本變量。 例如,第4行變為: export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig:$SDKTARGETSYSROOT/usr/local/lib/pkgconfig

你也可以在./config步驟中傳遞路徑,但我認為將它添加到變量是更好的長期解決方案。

我在Ubuntu 20.04也有類似的問題,在安裝另一個軟件時,它可能正在幫助其他人。 我必須安裝以下方法來解決問題。

  sudo apt install libsndfile1-dev
  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM