// 查看xcode 的版本
$:xcodebuild -version
Xcode 10.2.1
Build version 10E1001

FFTW:傅立叶变换常用库–fftw

FFTW官网:http://www.fftw.org/

下载下来fftw-3.3.8版本,并解压。
执行configure生成Makefile。
$:cd 到FFTW的根目录
$:./configure

后查看一下Makefile文件,找到
CC
CFLAGS
CPP
CPPFLAGS 的配置。

CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -fembed-bitcode -mfpu=neon
CFLAGS = -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.2.sdk/usr/include/ -mfpu=neon -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.2.sdk -mfpu=neon -O3
CPP = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -fembed-bitcode -mfpu=neon -E
CPPFLAGS = -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.2.sdk/usr/include/ -mfpu=neon

添加脚本并执行

脚本内容,脚本文件放到根目录下,./configure执行后,执行脚本
$:bash xxx.sh
等待漫长的编译过程。完成后。去a_ios-libs 文件夹下验证编译的静态库

#!/bin/shxcodebuild -version
xcodeversion_current=`xcodebuild -version`
xcodeversion="7.3.1"
result=$(echo $xcodeversion_current | grep "$xcodeversion")
echo $result
if [[ "$result" != "" ]]
then
echo "此时Xcode版本设置错误,请运行命令 'sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer' 来更换Xcode版本 "
exit
fi# build for iOS / Mac
# changed by 10mitri
# original:
# http://stackoverflow.com/questions/3588904/how-to-link-third-party-libraries-like-fftw3-and-sndfile-to-an-iphone-project-in# this is the folder where the libs will be generated
export OUTPUT_DIR=a_ios-libs# Select toolchains folder
export XCODE_TOOLCHAINS=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain#$(CURRENT_ARCH)build_target()
{
PLATFORM=$1
ARCH=$2
SDK_VERSION=$3
CONFIGURE_HOST=$4
IOS_DEPLOYMENT_TARGET=$5export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/$PLATFORM.platform/Developer/SDKs/$PLATFORM$SDK_VERSION.sdkexport CPPFLAGS="-I$SDKROOT/usr/include/ -mfpu=neon"
export CFLAGS="$CPPFLAGS -arch $ARCH -isysroot $SDKROOT -mfpu=neon -O3"
export LD=$XCODE_TOOLCHAINS/usr/bin/ld
export CXX="$XCODE_TOOLCHAINS/usr/bin/clang -arch $ARCH -fembed-bitcode -mfpu=neon"
export CC="$XCODE_TOOLCHAINS/usr/bin/clang -arch $ARCH -fembed-bitcode -mfpu=neon"echo ---------------------------------------------------
echo ---------------------------------------------------
echo ---------------------------------------------------
echo -------------- BUILD TARGET
echo -------------- PLATFORM : $PLATFORM
echo -------------- ARCH : $ARCH
echo -------------- SDK_VERSION : $SDK_VERSION
echo -------------- HOST : $CONFIGURE_HOST
echo -------------- MIN iOS : $IOS_DEPLOYMENT_TARGET
echo -------------- SDK PATH : $SDKROOT
echo ---------------------------------------------------
echo ---------------------------------------------------
echo ---------------------------------------------------#sleep 3make clean./configure --host=$CONFIGURE_HOST --enable-float  --enable-$ARCH-cntvctmake -j4mkdir $OUTPUT_DIR/$ARCH# Copy the lib
cp .libs/libfftw3f.a $OUTPUT_DIR/$ARCH/libfftw3f.aunset CPPFLAGS CFLAGS LD CXX CC
}mkdir $OUTPUT_DIRrm -rf $OUTPUT_DIR/*# Copy the header file too, just for convenience
cp api/fftw3.h $OUTPUT_DIR/fftw3.h#build_target "iPhoneOS" "armv7s" "12.2" "arm-apple-darwin" "7.0"
build_target "iPhoneOS" "armv7" "12.2" "arm-apple-darwin" "7.0"
build_target "iPhoneOS" "arm64" "12.2" "arm-apple-darwin" "7.0"
build_target "iPhoneSimulator" "x86_64" "12.2" "x86_64-apple-darwin" "7.0"
build_target "iPhoneSimulator" "i386" "12.2" "i386-apple-darwin" "7.0"#build_target "MacOSX" "x86_64" "11.4" "i386-apple-darwin" "7.0"

注意修改iOS SDK的版本我的12.2 。

报错解决

这个回答的脚本: Based on the answer by 10mitri, working for fftw-3.3.8, iOS SDK 12.2, XCode 10.2.

https://stackoverflow.com/questions/3588904/how-do-i-link-third-party-libraries-like-fftw3-and-sndfile-to-an-iphone-project

参考

Mac上交叉编译iOS静态库

编译-C语言库FFTW支持iOS平台的静态库相关推荐

  1. 编译-POCO C++支持iOS平台的静态库

    一.POCO C++ library简介 POCO C++ library是一个C++编写的跨平台库,主要实现网络连接.数据库管理以及服务器,适用于跨平台.嵌入式. 二.为Xcode编译POCO C+ ...

  2. 彩信库包含smil组装,打包,发送.是基于mm1协议c/c++封装.支持多平台的彩信库.

    库的地址: svn checkout http://broncho-mms.googlecode.com/svn/trunk/ broncho-mms-read-only 彩信库包含smil组装,打包 ...

  3. ios 重复引用 静态库_Swift 制作静态库

    Github地址:https://github.com/LINGLemon/LXFSwiftApp Swift不支持.a的静态库,因此只能制作.framework的静态库 动态库和静态库的区别 库: ...

  4. iOS静态库SDK制作(包含第三方静态库)

    本文来自简书,原文地址:http://www.jianshu.com/p/155a3cfb765e 前言 以下所涉及的框架和库只针对iOS而言,不确保在其他平台也适用. 最近由于公司业务需要,要求封装 ...

  5. iOS开发中静态库制作 之.a静态库制作及使用篇

    iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...

  6. IOS开发----生成静态库(.a)

    由于iPhone控件的极度匮乏和自定义组件在重用上的限制,在过去的项目中我们积累了大量的"纯代码"组件--因为IB本身的限制,我们无法把这些组件封装为IB组件库(本来我们想通过分发 ...

  7. iOS架构-制作静态库.a和.framework 的相互依赖(10)

    有一句名言:当你知道的东西越多,你才会发现你不懂的东西越多. 现在我有点体会到了,当我去了解静态库,我发现我要学习脚本:当我接触编译C/C++库,我发现我要去了解交叉编译:当我想了解组件化架构,我发现 ...

  8. [iOS] 引用外部静态库时,(类别)目录方法无法加载问题

    [iOS] 引用外部静态库时,目录方法无法加载问题 这个 bug 在 xcode 4.3 以下会出现,4.3 以后已经修正了. 解决方法为:找到 target 的图标,更改其 Other Linker ...

  9. cocos2dx使用了第三方库照样移植android平台-解决iconv库的移植问题

    好记性不如烂笔头 cocos2dx使用了第三方库照样移植android平台-解决iconv库的移植问题 http://www.zaojiahua.com/iconv.html

最新文章

  1. python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)
  2. 其它项目中引用AirSIm模块报错NullReferenceException: Object reference not set to an instance of an object
  3. 使用powershell一次性创建用户,OU及组
  4. 【场景演示解读】AI一体机高速自由流收费稽核解决方案
  5. mongo-mapreduce测试(4)——avg
  6. java项目加减乘除验证码_课堂Java小程序(加减乘除与验证码)
  7. 解决Linux系统中python matplotlib画图的中文显示问题
  8. 如何检查数字是否为2的幂
  9. 【转】NPOI自定义单元格背景颜色
  10. 单目3D多人姿态估计网络(整合自上而下和自下而上网络)
  11. 年轻人需谨记的创富理念
  12. bootrom的构成
  13. Ubuntu系统安装时grub修复操作
  14. 极飞P20植保无人机测评
  15. MEMS智能传感器技术的新进展
  16. 计算机专业毕业论文模板图文,计算机专业毕业论文提纲范文模板
  17. matlab实践总结与体会,MatLab实习心得体会
  18. 生物信息百jia软件(25):quast
  19. 当输入 https://www.baidu.com 时,返回页面的过程中发生了什么?
  20. oracle 删除主键级联删除唯一索引

热门文章

  1. 阿里JAVA面试题剖析:一般实现分布式锁都有哪些方式?使用 Redis 如何设计分布式锁?...
  2. Nagios 监控 ESXi
  3. HDU 3466 01背包变形
  4. 8个实用的响应式设计框架
  5. 【转】C#对象的深拷贝与浅拷贝
  6. 安装Maya 6.5指南
  7. MyBatis源码流程分析
  8. 2019年春季学期第4周作业.
  9. Python面向对象基础:设置对象属性
  10. Python_divmod() 函数简单说明