编译speex

一、下载speex

    地址:

    http://www.speex.org/downloads/

    或者

    http://xiph.org/downloads/

    我下载的是目前最新版本 1.2rc1

二、 编译speex

    我使用的IDE是VS2005,故打开项目下的win32/vs2005/libspeex.sln,编译,有几个project报错,缺少ogg.h文件。

    继续到    

    http://xiph.org/downloads/

    下载libogg,我下载的版本是1.3.0,打开项目下的win32\VS2005\libogg_dynamic.sln,项目很小,只有两个c文件,成功编译。

    配置libspeex中需要libogg的project的include、lib路径,再次编译,此时project speexenc任然出错,错误信息为

    3>LINK : ..\..\..\bin\speexenc.exe not found or not built by the last incremental link; performing full link

    3>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _malloc already defined in LIBCMTD.lib(dbgheap.obj)
    3>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _free already defined in LIBCMTD.lib(dbgheap.obj)

    相信有经验的程序员一眼就能看出,这是链接标准库时出了问题。按道理说两个solution都是VS2005的/MDd,不应该出现问题。而且很奇怪的是,project speexdec同样使用了libogg,却能成功编译。打开speexdec的项目配置,原来它在Ignore Specific Library中填上了LIBCMTD.lib,同样设置speexenc,编译成功。

    另还有一个project testresample,其中只有一个testresample.c,却找不到该文件,想来应该是一个测试或演示示例,竟然找不到它,就忽略这个project吧。    

posted on 2012-07-19 12:45  chef  阅读(6770)  评论(1编辑  收藏  举报

导航