首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法为iOS编译LAME

无法为iOS编译LAME
EN

Stack Overflow用户
提问于 2014-09-17 08:13:18
回答 2查看 1.4K关注 0票数 3

我正在尝试将lame mp3编码器编译为iOS的静态库。我想支持所有的架构,包括i686、armv6、armv7、armv7s和arm64。下面是我的构建脚本:

代码语言:javascript
复制
#!/bin/bash
DEVELOPER=`xcode-select -print-path`
SDK_VERSION="7.1"
mkdir build
function build_lame()
{
    make distclean
    ./configure \
    CFLAGS="-isysroot ${DEVELOPER}/Platforms/${SDK}.platform/Developer/SDKs/${SDK}${SDK_VERSION}.sdk" \
    CC="${DEVELOPER}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch ${PLATFORM} -miphoneos-version-min=7.0 " \
    --prefix=/Users/mcrute/Desktop/lame \
    --host="arm-apple-darwin9" \
    --disable-shared \
    --enable-static \
    --disable-decoder \
    --disable-frontend

make -j4
cp "libmp3lame/.libs/libmp3lame.a" "build/libmp3lame-${PLATFORM}.a"
}
SDK="iPhoneSimulator"
PLATFORM="i686"
build_lame
SDK="iPhoneOS"
PLATFORM="armv6"
build_lame
PLATFORM="armv7"
build_lame
PLATFORM="armv7s"
build_lame
PLATFORM="arm64"
build_lame
lipo -create build/* -output build/libmp3lame.a

这个错误看起来是这样的:

代码语言:javascript
复制
configure: error: in `/Users/ivan/Desktop/lame-3.99.5':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
make: *** No targets specified and no makefile found.  Stop.
cp: libmp3lame/.libs/libmp3lame.a: No such file or directory

这里是我的config.log。试图从生成目标中删除arm64,但脚本也失败了,但也有相同的错误。谷歌说我没有gcc但我有..。寻找任何建议!

EN

回答 2

Stack Overflow用户

发布于 2014-09-18 13:47:17

通过在配置函数中添加CPP="*“变量解决了这个问题。CPP在我的节目中被错过了。编辑后的构建脚本应该如下所示:

代码语言:javascript
复制
#!/bin/bash

DEVELOPER=`xcode-select -print-path`

SDK_VERSION="7.1"

mkdir build

function build_lame()
{
    make distclean

    ./configure \
    CPP="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cpp" \
    CFLAGS="-isysroot ${DEVELOPER}/Platforms/${SDK}.platform/Developer/SDKs/${SDK}${SDK_VERSION}.sdk" \
    CC="${DEVELOPER}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch ${PLATFORM} -miphoneos-version-min=7.0 " \
    --prefix=/Users/ivan/Desktop/lame-3.99.5 \
    --host="arm-apple-darwin9" \
    --disable-shared \
    --enable-static \
    --disable-decoder \
    --disable-frontend

    make -j4
    cp "libmp3lame/.libs/libmp3lame.a" "build/libmp3lame-${PLATFORM}.a"
}

PLATFORM="i686"
SDK="iPhoneSimulator"
build_lame

PLATFORM="armv6"
SDK="iPhoneOS"
build_lame

PLATFORM="armv7"
build_lame

PLATFORM="armv7s"
build_lame

PLATFORM="arm64"
build_lame

lipo -create build/* -output build/libmp3lame.a
票数 1
EN

Stack Overflow用户

发布于 2014-09-18 13:46:18

从评论到回答。

由于某种原因,CPP被设置为一个非常奇怪的值。

您正在将配置行上的CC手动设置为XcodeDefault内的路径。

尝试在配置调用中设置CPP,以便在XcodeDefault中设置适当的cpp二进制文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25885483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档