zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/findumars/p/6546108.html
Copyright © 2011-2022 走看看