• MinGW 编译 libsndfile-1.0.25(只要有 MSYS,./configure make make install 就行了)


    最近做的一个项目需要读写 wav 文件。在网上找到 libsndfile 刚好满足我的需要。
    但是编译的时候遇到了点小麻烦,这里记录一下编译的过程,免得下次再编译时忘记了。

    因为是在编译完成若干天后写的,有些细节可能不一定准确。

    libsndfile 是一个 C 语言写成的 开放源代码的音频文件读写的库。可以读写 WAV 格式,FLAC 格式和其他许多常见格式(因为专利原因不支持MP3)。LGPL 协议。

    如果只是用 libsndfile 读写标准的 PCM 编码的 wav 文件,那就很简单。
    只要有 MSYS, 
    ./configure
    make
    make install 
    就行了。

    如果想编译完全了。就需要有 libflac libogg 和 libvorbis 
    还需要有 pkg-config ,否则 libsndfile 找不到 libflac libogg 和 libvorbis
    不过 pkg-config 依赖于 glib ,所以直接在 MSYS 上编译 pkg-config 是无法编译通过的。
    我的办法是找了个 pkg-config 的替代品 pkg-config-lite

    pkg-config-lite 的主页在
    http://sourceforge.net/projects/pkgconfiglite/

    pkg-config-lite 移除了pkg-config 对 glib 的依赖关系。精简了不少。


    pkg-config-lite、libogg 和 libvorbis 编译没什么困难。

    ./configure
    make
    make install 

    libflac 包含在在 flac 中。 我最开始找的是 flac-1.2.1。
    编译时报了些错误,基本就是哪个函数没声明,缺少哪个宏定义一类的。改改源代码就可以编译了。

    但是编译成功后却找不到 libflac.dll 文件。而 libsndfile 却必须要动态链接 libflac。。。
    肯定是 Makefile 的问题,但是我水平不够不会改。只能想别的办法。

    后来找到 flac-1.3.0 , 编译通过,libflac.dll 也有了。

    最后编译 libsndfile 。 没遇到什么大问题。

    至此,libsndfile 编译完成。

    下一篇博客准备写写 libsndfile 的基本用法。

    http://blog.csdn.net/liyuanbhu/article/details/10099131

  • 相关阅读:
    约瑟夫问题的JAVA实现(借鉴别人的代码+自己分析理解)
    ubuntu 与windows双系统记录
    重装windows7
    浏览器专题之缓存url请求
    js实现函数重载
    用python实现网上书店
    flex与bison应用实例
    前端小游戏之拼图功夫熊猫
    细说javascript的对象
    [LeetCode 1712] Ways to Split Array Into Three Subarrays
  • 原文地址:https://www.cnblogs.com/findumars/p/6546108.html
Copyright © 2020-2023  润新知