编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity

1. 编译WxWidgets

  1. Audacity使用wxWidgets作为GUI的框架,Audacity2.1.2需要wxWidgets 3.0.2,所以在编译Audacity之前需要编译wxWidgets。wxWidgets的下载地址为http://www.wxwidgets.org/downloads/,选择3.0.2的源代码下载。

  2. Audacity在使用wxWidgets时,对其做了一些更改,在编译wxWidgets前,需要用Audacity更改后的源代码替换wxWidgets的源代码。将Audacity源码下的audacity-master\win\wxWidgets_additions\wxWidgets-3.0.2覆盖wxWidgets源码下的相同项。

  3. 在目录\wxWidgets-3.0.2\build\msw下,该目录下提供了不同版本的visual studio的solution文件,命名就是Visual studio的版本号,这里使用VS2013打开wx_vc12.sln,使用VS2013进行编译。由于Audacity使用了wxWidgets的部分库,不需要编译整个解决方案。 只需要编译下面几个project:

  • adv
  • base
  • core
  • html
  • net
  • qa
  • xml

上面的project依赖于下面的project,一起选择编译

  • wxexpat
  • wxjpeg
  • wxpng
  • wxregex
  • wxtiff
  • wxzlib

选择特定的project进行编译的方法,按住Ctrl,然后鼠标左键选择project;project选择完成后,右键->生成选择的内容。

编译时,注意选择解决方案的配置项,DLL Debug对应于Audacity的Debug;DLL Release对应于Audacity的Release。

在Audacity中是通过环境变量引用wxWidgets库的,所以编译完成后,需要为wxWidgets配置环境变量。环境变量的名称为WXWIN,其值为@\wxWidgets-3.0.2其中@表示wxWidgets源码所在的路径。一定要确定设置的环境变量生效,再开始编译Audacity,不然会出现找不到头文件以及link的错误。

2. 编译Audacity

编译好wxWidgets,并设置好环境变量WXWIN后,就可以打开Audacity的solution进行编译了。在目录\audacity-master\win下,用VS2013打开audacity.sln,该solution文件就是VS2013版本的,不需要转换。看Audacity的官方文档,编译时还有各种可选项,由于只是想看下Audacity各种音频操作的源码,这里也就没有管那些可选项,打开解决方案后直接选择生成解决方案,进行编译。

编译过程中,如果出现了头文件找不到,link等错误,认真检查环境变量WXWIN是否设置正确,是否生效。

如果出现的错误是资源文件audacity.rc,那么莫慌,这表明已经编译通过了。只是这个资源有一个字符出现了错误,双击编译提示的错误,找到错误的代码将VALUE "ProductName", "Audacity?改为VALUE "ProductName", "Audacity"。 也就是将最后的 问号?,改为右单引号",不知道是源代码的错误还是文本的解析错误。

F5就可以进入Audacity的调试了。

Windows下Visual studio 2013 编译 Audacity的更多相关文章

  1. Windows下Visual Studio 2013编译Lua 5.2.3

    1.创建一个Visual C++的Empty Project,如果需要支持Windows XP将Platform Toolset设置为Visual Studio 2013 - Windows XP ( ...

  2. Visual Studio 2013编译Tesseract 3.04

    文章目录 去年时候使用了VS2008编译了Tesseract 3.02版本,主要是参考了一份官方文档,但是对于目前的最新版本并没有给出说明. 本文主要参考了Paul Vorbach的How to bu ...

  3. Windows下visual studio code搭建golang开发环境

    Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...

  4. Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)

    对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...

  5. 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法

    转自:http://blog.csdn.net/xiaochunzao/article/details/16987703 Visual Studio 2013 编译旧的 multi-byte char ...

  6. 代码从windows下visual studio到andriod平台迁移的修改记录

    前言 前言也是迁言,从windows的visual studio 2012平台迁移到android平台上,需用修改挺多的代码和需用注意地方. 我们当然的平台当初就考虑了其他平台跨平台的应用问题,所以一 ...

  7. Visual Studio 2013编译Mozilla NPAPI 示例注意事项

    1.Platform Toolset设置Visual Studio 2013 - Windows XP (v120_xp). 2.Character Set设置Use Multi-Byte Chara ...

  8. Visual Studio 2013 编译CEF步骤

    If you'd like to build the Chromium Embedded Framework (a wrapper for Chromium, for creating browser ...

  9. 解决visual studio 2013编译过程中存在的无法打开kernel.lib问题

    1. 出现此类问题的原因 由于原visual studio文件中的安装中出现问题,所以原有的SDK(soft development kits)文件出现缺失: 2. 解决方法1 重新下载SDK工具,安 ...

随机推荐

  1. javascript匹配各种括号书写是否正确

    今天在codewars上做了一道题,如下 看上去就是验证三种括号各种嵌套是否正确书写,本来一头雾水,一种括号很容易判断, 但是三种怎么判断! 本人只是个前端菜鸟,,不会什么高深的正则之类的. 于是,在 ...

  2. HDU1671——前缀树的一点感触

    题目http://acm.hdu.edu.cn/showproblem.php?pid=1671 题目本身不难,一棵前缀树OK,但是前两次提交都没有成功. 第一次Memory Limit Exceed ...

  3. 关于Raid0,Raid1,Raid5,Raid10的总结

    RAID0 定义: RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就 ...

  4. node中子进程同步输出

    管道 通过"child_process"模块fork出来的子进程都是返回一个ChildProcess对象实例,ChildProcess类比较特殊无法手动创建该对象实例,只能使用fo ...

  5. golang struct扩展函数参数命名警告

    今天在使用VSCode编写golang代码时,定义一个struct,扩展几个方法,如下: package storage import ( "fmt" "github.c ...

  6. “此网页上的某个 Web 部件或 Web 表单控件无法显示或导入。找不到该类型,或该类型未注册为安全类型。”

    自从vs装了Resharper,看见提示总是手贱的想去改掉它.于是乎手一抖,把一个 可视web部件的命名空间给改了. 喏,从LibrarySharePoint.WebPart.LibraryAddEd ...

  7. C#事件-使用事件需要的步骤

    事件是C#中另一高级概念,使用方法和委托相关.奥运会参加百米的田径运动员听到枪声,比赛立即进行.其中枪声是事件,而运动员比赛就是这个事件发生后的动作.不参加该项比赛的人对枪声没有反应. 从程序员的角度 ...

  8. MySQL数据库罕见的BUG——Can't get hostname for your address

    在连接mysql jdbc时候,抛出了 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communicat ...

  9. 驱动01.LED

    1.写出leds_open,leds_write函数2.1告诉内核这几个函数的存在?定义一个结构体file_operations2.2把这个结构体告诉内核?用register_chrdev(major ...

  10. 树莓派3B的食用方法-1(装系统 网线ssh连接)

    首先要有一个树莓派3B , 在某宝买就行, 这东西基本上找到假货都难,另外国产和英国也没什么差别,差不多哪个便宜买哪个就行. 不要买店家的套餐,一个是配的东西有些不需要,有的质量也不好. 提示:除了G ...