Windows下使用Vs2017编译id3lib库
来源:互联网 发布:淘宝基础版和智能板 编辑:程序博客网 时间:2024/05/16 02:27
与朋友合作要搞一个“SchoolMusic”(校园淫♂乐)项目, 其中本人负责的是文件操作,自然涉及到音乐文件的处理,就拿mp3文件来说, 结构并不是十分复杂,大多数mp3文件都是遵循id3v2的格式的,既然是做软件,有现成的轮子就应该拿来用,自己写别人已经分装好的功能, 一方面可能出错(除非你对自己的能力很有信心);另一方面也耗费了人力物力。这样的行为对于软件开发是不利的。
所以我果断祭出神器id3lib, 这是一个跨平台的库,用来读写id3标签的,支持v1, v2. 而且本身体积很小, 对于这个工程来说实在是再适合不过。但是这个库年代比较久远(最后一次更新在03年)。所以他只支持vc6的自动编译脚本。
本人用的是Vs2017 由于只支持到vc6,所以编译出现问题的小伙伴都可以参考下面的经验。
1.下载
id3lib的下载地址:
https://sourceforge.net/projects/id3lib/files/id3lib/
有多种口味供选择, 编译方式也是相同的
2.解压
下载好了压缩包, 解压之,文件如下
我们需要的是prj文件夹,这个文件夹存放了工程文件。
进入这个文件夹,有一份说明文件(win32.readme.first.txt)
里面说明了如何使用工程文件, 如果可以, 我真不想看纯英文。
我总结了编译步骤, 且听我娓娓道来
3.安装
这是最重要的一步, 所以我给整大一点,再弄个醒目的颜色。
1.重命名
回退到上一级目录, 就是上面那张图的地方,将config.h.win32重命名成config.h. 这是第一步。
2.打开工程
进入prj文件夹, 打开id3lib.dsw(如果你装了vs, 这个文件应该是由vs打开的),一开始会弹个框,里面有几个钩,全部勾上选确定就行了。
然后是读条导入。导入之后,解决方案列表如下
找到id3lib下的config文件夹, 展开后, 发现里面有一个config.win32.h, 那个文件已经不存在了, 之前第一步把这玩意儿改成config.h了,
所以接下来要做的就是右击->remove,从项目中踢出去以后, 再右击config->add->existing item(就是添加已有文件), 把改了名的加进来,就成了,
这是第二步。
3.添加宏定义
这里只需要添加一条宏定义。
_XKEYCHECK_H, 至于添加它的原因, 自然是因为C++版本更新变迁,是不向下兼容的。去掉这个宏你就会看到一个古怪的毛病。
右击项目id3lib(注意是项目id3lib,最上面的那个id3lib是解决方案的名字)
点击第一行下方会出现一个编辑。 弹框, 填上那条宏
确定, 这是第三步, 别急,还没完呢。
4.伪装
为啥这第四步要叫伪装, 因为我觉得这个词合适呀。
仍然是项目id3lib下, 找到definition file文件夹,展开可以看到一个叫做Id3lib.def的文件。
双击打开
我们要修改的是第三行。 将3.8.0改成1.28
Ctrl+S保存。
5.编译
上面的操作完成之后, 其实就可以进行release模式编译生成lib和dll了。
如果是debug模式的话,要按照下面的图进行设置,
右击项目id3lib. 然后, 看图。
然后你就可以高高兴兴的编译了。
以上是本人对windows下编译id3lib的经验。
这种方式并不只是针对于id3lib. 可以延伸到其他第三方库中。
当然linux就方便多了 没那么多破事。
顺便说一句, makefile是个好东西, 我也得找个时间学习学习。
以上所有内容并不是我呕心沥血所得, 而是为了编译个库走访百度n次的我根据数量极少的帖子和博客的总结与融合,希望能对你们有帮助。
- Windows下使用Vs2017编译id3lib库
- id3lib-3.8.3在linux下的编译
- VS2017下编译和配置boost库
- VS2017下编译和配置boost库
- VS2017下Boost编译
- VS2017编译boost库
- 编译boost库 VS2017
- Windows10+VS2017下安装和 编译openssl库
- WINDOWS+CMAKE+VS2017编译OLLVM并整合到VS2017 NDK
- 在 Win10 下使用 VS2017 对 emWin 模拟器编译不成功的解决办法
- windows下使用gcc编译boost库
- Windows下使用VS2008编译RobotVision库
- windows下使用gcc编译boost库
- windows 下使用MinGW编译PBC库
- windows环境下编译使用PBC库
- windows下使用gcc编译boost库
- Windows下使用VS2015编译openssl库
- windows下使用VS编译libIconv库
- JZOJ5441. 【NOIP2017提高A组冲刺11.1】序列
- Java nio&bio的个人看法
- UDP 客户端与服务器端实例
- MatLab视频学习笔记(21世纪电子论坛原创视频)-02
- 后台运行 esearch 和 其他用户安装java 环境变量
- Windows下使用Vs2017编译id3lib库
- ubuntu 16.04 工具安装
- BZOJ2115 线性基 对于异或环的处理
- C语言中取地址符&做函数形参?—— 引用的讨论
- Circuit上的电路构建
- Acm2-快速幂、位运算、递归
- iOS 数组与指针经典笔试题
- 栈链的实现
- UDP之socket编程实例