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
MinGW 编译 libsndfile-1.0.25(只要有 MSYS,./configure make make install 就行了)的更多相关文章
- linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- MinGW 编译 libaom 1.0.0 注意事项
CMake 后不生成 config/aom_version.h 文件 需要手动编写 #define VERSION_MAJOR 1 #define VERSION_MINOR 0 #define VE ...
- CentOS6.3 编译安装LAMP(3):编译安装 MySQL5.5.25
所需源码包: /usr/local/src/MySQL-5.5.25/cmake-2.8.8.tar.gz /usr/local/src/MySQL-5.5.25/mysql-5.5.25.tar.g ...
- 技术分享 | ARM下中标麒麟系统ky10使用Xtrabackup-8.0.25
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 一.需求背景 查询Percona官方手册,Xtrabackup 8.0可以备份M ...
- 使用Mingw编译wxSqlite3-3.0.5
最近在学习wxWidgets,而且官方也出了3.0版本,貌似还不错的样子,准备做个小程序来练手.中间需要用到数据库看到很多人推荐wxSqlite3就去下来看看,以下是我使用TDM-GCC 4.8.1( ...
- MinGW下编译curl-7.60.0时, 发生ERROR_FILE_NOT_FOUND undeclared
在编译curl-7.60.0时, 遇到ERROR_FILE_NOT_FOUND undeclared 这个情况, 就没法编译成功!! 下载了以往的版本, 发现是从curl-7.59.0版本开始才有 t ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- 北航 编译实践 PL/0文法
编译实践-PL\0编译系统实现 姓名: 专业: 计算机科学与技术 学院: 软件学院 提交时间: 2013年12月25日 北京航空航天大学·软件学院 编译实践-PL\0编译系统实现 实验要求 以个人 ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
随机推荐
- 【noip模拟】Fancy Signal Translate (暴力 + 哈希)
题目描述 FST是一名可怜的 OIer,他很强,但是经常 fst,所以 rating 一直低迷. 但是重点在于,他真的很强!他发明了一种奇特的加密方式,这种加密方式只有OIer才能破解. 这种加密方式 ...
- 解决eclipse 保存卡顿的问题
开发十年,就只剩下这套Java开发体系了 >>> eclipse 如果启动慢,还可以接收. 可是如果是 保存的时候卡顿, 有时候会 卡顿 3秒-5 秒的,感觉到写代码特别的不顺畅 ...
- Network architecture for minimalistic connected objects
In one embodiment, a network architecture comprises minimalistic connected objects (MCOs), distribut ...
- qLibc 对于C C++都是一个很好的框架,提供Tree Hash Stack String I/O File Time等功能
qLibc Copyright qLibc is published under 2-clause BSD license known as Simplified BSD License. Pleas ...
- 自己动手编写一个VS插件(六)
作者:朱金灿 来源:http://blog.csdn.net/clever101 在上篇中我们已经实现了创建和显示一个工具栏出来,它的效果图是这样的: 现在我们实现一些简单功能,具体就是单击按钮弹出一 ...
- node assert模块 Study.1
1.assert() 大体理解意思:assert可以抽象理解为node中的alert++ assert模块是Node的内置模块,用于断言的作用,如果不是自己想要的就抛出错误 assert(arg1, ...
- Spring boot参考指南
介绍 转载自:https://www.gitbook.com/book/qbgbook/spring-boot-reference-guide-zh/details 带目录浏览地址:http://ww ...
- Android app设置全屏模式
Android中,为APP设置全屏模式,主要有如下几种方式: 在manifest中设置 在项目中找到AndroidManifest.xml配置文件,找到Activity所在的节点,添加theme. & ...
- 1 开始ThreeJs
因为需要 需要一款 网页上的 游戏引擎 通过百度知道了 three.js 1.先从github上clone下源码 https://github.com/mrdoob/three.js 2.下载web ...
- Boltzmann 玻尔兹曼机(BM)
Hopfield + 模拟退火 ⇒ Boltimann machine(随机神经网络),由 Hinton 和他的长期合作者 Sejnowski(Hopfield 的博士生) 共同提出. 1. 基本公式 ...