交叉编译适用于 iOS 的 Jansson C 库

Posted

技术标签:

【中文标题】交叉编译适用于 iOS 的 Jansson C 库【英文标题】:cross-compile Jansson C library for iOS 【发布时间】:2014-04-25 23:30:28 【问题描述】:

我正在尝试从我的机​​器 (x86_64) 交叉编译 ios (armv7) 的 Jansson。我了解到,使用 xcode 5,苹果已删除 llvm-gcc,因此无法找到 armv7-apple-darwin-gcc。结果库是为 x86_64 编译的。

这是我当前的配置:

./configure --prefix=/resultdir --host=armv7-apple-darwin --target=armv7-apple-darwin

我看到很多人说他们已经为 arm 架构编译了 jansson,所以我知道这是可能的。只是似乎无法做到。

关于如何做到这一点的任何想法?

【问题讨论】:

【参考方案1】:

我的系统上安装了较旧的 iPhoneOS 5.0 SDK。我相信您也可以使用更新的版本。以下脚本为我成功编译了 Jansson:

export CC="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang"
export CPP="clang -E"

export SDKPATH="/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk"
export CFLAGS="-arch armv7 -isysroot $SDKPATH -miphoneos-version-min=5.0"

export LDFLAGS="-isysroot $SDKPATH"

./configure --host=arm-apple-darwin10

make

结果是我没有测试的库,但是file返回的是arm架构库:

$ file src/.libs/libjansson.4.dylib
src/.libs/libjansson.4.dylib: Mach-O dynamically linked shared library arm

根据您已安装的 SDK 适当调整 SDKPATH-miphoneos-version-min=5.0

【讨论】:

以上是关于交叉编译适用于 iOS 的 Jansson C 库的主要内容,如果未能解决你的问题,请参考以下文章

适用于 iOS 的 leptonica 1.69 交叉编译(armv7、armv7s 和 arm64)

人工智能实战——人工神经网络(C库iOS交叉编译)

buildroot 构建交叉编译工具链

Windows 上适用于 Linux 的 C++ 编译器? [关闭]

conan入门:交叉编译自己的conan包项目

conan入门:NDK交叉编译自己的conan包项目塈profile的定义