amr编码在window上需要用到的库及其他
2017-05-23 18:29
197 查看
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安装
待加入。。。。。。
转载大神链接: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安装
待加入。。。。。。
相关文章推荐
- 反射泛型,Dao设计模型 (编码时需要用到)
- 独立开发Unity3D需要用到的一些其他工具
- 文档的当前编码不能保存文档内所有字符,需要改为UTF-8或者其他支持本文当中的特殊字符的编码
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- 当system或者批处理或者计划任务需要调用其他exe时失败的解决方法(window和linux)
- 这几天做一个小程序需要用到线程的暂停与恢复 ,搞来搞去用Thread.Suspend和Thread.Resume总达不到想要的结果。后来百度一下 总结写了一个方法,共享一下 ~~~~~~~~~~
- 使用struts中的DisPatchAction的时候需要用到的jar包
- 谁都会写代码 ,但是以最有效率的方式编码就需要下更多的功夫
- StringBuilder和StringBuffer解析(百度面试题优化需要用到的)
- 导出新项目后需要修改的几个配置文件及其他配置文件用处
- 使用 SQL Server 时需要经常用到的几个设置选项!
- scrapy Unicode 编码 转 gbk或者其他
- ural 1056 Computer Net(树形DP)需要用到两遍dfs
- AMR 语音编码
- 软件开发需要用到的图
- C#学习,整理一些API类,外挂编程需要用到
- 俄罗斯方块的model需要用到的类的详细解说
- 联合查询的结果作为其他查询的数据表时需要别名
- MFC程序的与window程序的区别及需要的库和头文件
- tomcat监控需要用到jmx