amr编码在window上需要用到的库及其他
来源:互联网 发布:网络软营销 编辑:程序博客网 时间:2024/06/08 08:56
1.amr必须在window下编译成库文件后方可方便使用
转载大神链接:http://blog.chinaunix.net/uid-29355319-id-4043188.html
前言
若一个交付用户的产品由嵌入式端、通用微机组成,微机端软件通常使用微软平台开发(运行),而嵌入式端可能由GNU平台开发。在处理某些数据时最好使用相同的程序库,这就需要编译相应库(Unix-like C工程)的Windows版本。以编译libopencore-amrnb-0.dll为例,本文演示如何利用MinGW、MSYS、Visual Studio 2010搭配完成该任务。
假定读者对GNU编译工具链稍有了解。
一、准备编译环境及源码
1)MinGW(Minimalist GNU on Windows)
该项目提供了方便的安装工具mingw-get-setup.exe,其下载地址为:
http://sourceforge.net/projects/mingw/files/Installer/
运行该安装程序,会从网络自动下载安装文件。
在第3步选择“Download latest repository catalogues”
选择安装路径:本文安装路径为“D:\MSYS”。
在“Select Components”步骤中选择:
√ C Compiler (默认且一定选择)
√ C++ Compiler
√ MSYS Basic System(选择此项将会安装msys,msys则不需要另外安装)
√ MinGW Developer ToolKit
安装完成后,已包含MSYS。
2)准备opencore-amr库源码
其下载地址为:
http://sourceforge.net/projects/opencore-amr/files/opencore-amr/
当前(2013.12.18)版本为opencore-amr-0.1.3,也是项目中基站使用的版本。
本文源码存放目录为:“D:\opencore-amr-0.1.3”。
3)安装Visual Studio 2010
过程略。本文的安装路径为“D:\Program Files (x86)\Microsoft Visual Studio 10.0”。
二、配置参数并编译动态链接库
1)编辑“D:\MSYS\msys\1.0\msys.bat”,在文件的开头加入如下一行:
call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
2)运行“D:\MSYS\msys\1.0\msys.bat”,
cd /d
cd opencore-amr-0.1.3
./configure --prefix=D:/MSYS/msys/1.0/local
make
make install
D:\MSYS\msys\1.0\local存放编译后得到的文件。
得到DLL库文件:libopencore-amrnb-0.dll、libopencore-amrwb-0.dll。
3)在D:\MSYS\msys\1.0\local\bin目录中执行:
pexports.exe libopencore-amrnb-0.dll > libopencore-amrnb-0.def
4)将“D:\Program Files\Microsoft Visual Studio 10.0\VC\bin\”目录下的lib.exe、 link.exe以及“D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\” 目录下的mspdb100.dll复制到“D:\MSYS\msys\1.0\local\bin”目录(目标库所 在目录)。
执行:
lib.exe /machine:i386
/def:libopencore-amrnb-0.def /out:libopencore-amrnb-0.lib
备注:
实践得知,第二步编译出的dll文件不能用于VC++编译器(故而有了第三、第四步)。编译得到的libopencore-amrnb.a可供MinGW编译器(Win7)调用。
VC++编译与MinGW GCC编译器使用的动态库格式有差异。恐怕有更准确的配置方法笔者尚不清楚。
第三步导出符号表,第四步生成lib库,在VC++工程中调用lib库,转由该库调用dll动态库。
三、调用测试
使用Visual Studio 2010创建VC++工程,并对库路径进行配置(非本文要点,过程从略)。
编写测试代码,编译工程,将libopencore-amrnb-0.lib、libopencore-amrnb-0.dll复制至程序所在目录(或其他链接库搜索路径),执行如下图:
二、minGW安装
待加入。。。。。。
- amr编码在window上需要用到的库及其他
- AMR在IP域中的编码
- 获取操作系统的编码格式及其他
- AMR在IP域中的编码(rfc3267,4867)
- AMR在IP域中的编码(rfc3267,4867)
- AMR在IP域中的编码(rfc3267,4867)
- 在使用bootstrap,若用到jsp上需要注意的地方
- amr编码
- ~~~~他在好人的道路上起跑~~~~
- opencore amr在iOS上decode
- 语音编码算法AMR NB , AMR WB 和AMR WB+的区别
- (转)语音编码算法AMR NB , AMR WB 和AMR WB+的区别
- 需要用到的
- 在iOS开发中,需要用到的多线程技术。
- Mini-XML库在VC6.0及其他VS环境下的使用
- Window Services的调试和非托管dll的引用及其他一些注意问题
- 类的const、static、const static成员初始化位置及其他需要注意的问题
- 导出新项目后需要修改的几个配置文件及其他配置文件用处
- 【C#
- ubuntu 修改时区
- Linux死机鼓掌如何处理?
- 如何查看某个端口被谁占用
- 嵌入式linux+ARM 3
- amr编码在window上需要用到的库及其他
- 从源码理解Handler
- Struts2跳转
- 嵌入式linux+ARM 3
- Flask学习专题之简介
- maven项目打包成可执行的jar
- mysql插入一条数据,返回其对应的id
- viewpager加载fragment 时加载多页
- 明朝首辅/太师,辅佐明朝四代国之重臣杨士奇后世传人在松滋