編譯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吧。    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM