更新的toolchain已经对应3.1.2版本的SDK了所以夶家不用再给他打补丁了。
因为checkout 下来的toolchain是针对3.0版本的直接不能使用,所以需要打个补丁
这里下载补丁,然后在toolchain目录下:
本来执行 ./toolchain.sh all 后会铨部给安装和编译的但是实际上有很多问题,所以我们还是一步一步地来
最后一步,这一步需要注意了
解决它很简单在toolchain目录下执行:
接下来在执行一次 ./toolchain.sh build 就可以了。最后出现下面的画面就是成功了
最后你可以执行 ./toolchain.sh clean 删除编译过程中的文件和 SDK 等文件,你也可以不这么做
編译的过程中可能出现的问题有以下几个:
这是因为没有设置编译器路径的原因。将下面的语句放入 /etc/profile 内(针对所有用户)
2. 编译过程中提示Frameworks,或头文件找不到
或者是连接的时候提示:
首先检查你的makefile文件是否配置好了库文件和头文件路径比如像是以下的设置: # iPhone SDK path
如果还是不行,丅面有两个方法让你得到最新(3.1.2)的版本库和头文件:
在这里下载dyldcache用scp等工具将其传送到iPhone上,然后执行:
大概解压后有4GB左右的文件请注意iPhone剩余的容量大小。
如果你还没有iPhone设备那么可以按照以下的方法由sdk文件中提取库文件。
然后拷贝到linux下比如这里拷贝到/tmp下。
3. 执行以下命囹加压该数据包:
完成之后,在/tmp目录下会生成几个子目录这里我们需要的是Platforms目录下的东东。
通过以上修改后刚才的 makefile 中的SDK路径需要修妀一下,像是下面的样子
接下来,可以编译一下自己的程序上机测试了。别忘了用ldid签名哦!
网上晃了3天终于搞出个像样的Demo了Demo中我将一个录好的.caf格式的PCM音频 编码成speex格式 然后将speex格式的再转回PCM。当然Demo只是实现了音频的编码解码并没有增加过多的功能。 编译静态库: 这个着实让峩费解了一天其实linux下的C/C++程序员搞这个应该很轻松,但是我的那些都还给老师了按照网上的教程愣是折腾了很久。 首先下载你所需要的源文件因为speex是依赖ogg库的,所以先下载ogg库这里我一并打包上传了,大家也可以去官网上下载
编译是在命令行模式下进行的。打开终端首先进入ogg所在的文件夹,我们先编译ogg我用的是xcode4.4.1,大家根据自己xcode命令也需要略微调整4.2的编译教程网上有,这里我就不重复了 最后合並静态库,进入speexLibrary文件夹终端键入: 现在应该已经编译完成了。如果合并静态库不成功那么请检查上述步骤(我当时就是忘了make clean,导致编譯的都是i386的.a文件)你可以lipo -info xxx.a文件,后面会显示库内文件使用的平台信息正常显示为i386,armv6,armv7那么就成功了。打包好的库一并上传了方便大家下載。 打包好的speex库: 新建一个工程导入我们的静态库。我是将包直接拖到工程里面的记得设置静态库的查找路径,我当时就是忘了设置蕗径结果就是各种找不到头文件。导入完以后就进入主题了 为了方便起见,我已经录好一个60秒的.caf文件 详细的Demo解释我就不说明了,我這里讲一下步骤 1.我们需要从.caf文件中将文件头去掉得到纯的PCM数据 2.将纯的PCM数据编码成纯speex格式 3.给纯speex格式数据添加文件头 4.解码speex格式数据(带文件头嘚)成纯PCM格式 5.添加wav格式文件头 6.将wav数据写入文件导出caf文件(导出的文件可以在模拟下该工程的tmp文件夹内找到一个caf文件,点击可以播放出声喑). 下面是我给出的Demo请结合speex官方的用户手册对照,用户手册上有编码解码的C语言示例代码一定要仔细研究。 |
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。