EMIPLIB(http://research.edm.uhasselt.be/emiplib)的全称是'EDM Media over IP libray'。这是一个网络多媒体库。详细信息请到EMIPLIB的网站查看。 下面介绍下在windowsXP SP3 VS2005下编译EMIPLIB库和运行他的一个example下的feedbackexample例子。本文档参考了http://www.rosoo.net/a/201009/10112.html 这篇文档,写得非常好,在此向作者表示感谢。 EMIPLIB库的依赖关系(->代表依赖)emiplib.lib ->rtplib.lib ->jthread.lib,emiplib.lib->libspeex.lib, libspeex.lib->libogg 我们需要得到上面的所有库,下面列出我所使用的版本 jthread- jrtplib- libogg- speex-1.2rc1 emiplib- 在编译这些库时需要注意的就是所有的库都要采用统一的运行时库为/MDd,设置方法在项目->配置属性->C/C++->代码生成->运行时库,选择多线程调试模式。 编译顺序应该是按照如下顺序进行: <!--[if !supportLists]-->1. <!--[endif]-->libogg- <!--[if !supportLists]-->2. <!--[endif]-->speex-1.2rc1 <!--[if !supportLists]-->3. <!--[endif]-->jthread- <!--[if !supportLists]-->4. <!--[endif]-->jrtplib- <!--[if !supportLists]-->5. <!--[endif]-->emiplib- 编译libogg时默认的WIN32目录中只有VC6的工程文件,可以转换为VS2005,需要注意的是这个需要修改运行时库,在编译成功后或生成一个动态链接库和一个静态链接库,需要将这个静态链接库的名字修改为libogg.lib。 在编译speex库时要设置包含libogg的include目录,并且设置libogg.lib的链接目录,还要在工程中添加附加依赖库libogg.lib文件。 在编译jthread和jrtplib库时只要注意那个运行时库的选项就可以了,没出什么大问题。 编译emiplib库时需要添加包含jthread和jrtplib的src目录,并制定库附加目录是工程可以找到jthread.lib和jrtplib.lib文件,还要在附加依赖库中添加jthread.lib、 jrtplib、 ws2_32.lib、 winmm.lib和libspeex.lib。 编译emiplib自带的例子feedbackexample方法如下: 在上面已经编译通过的emiplib工程源代码中添加feedbackexample.cpp文件。修改项目属性->配置属性->常规->配置类型->应用程序(.exe),之后可以编译运行。运行时别忘了需要找个wav文件改名为soundfile.wav。 好了,至此已经可以运行这个例子了。 (paul216) |