Win7 VS2017编译Audacity2.1.3

最近比较热衷折腾大型开源软件编译,因为在逐渐用开源软件替换盗版软件,除去盗版用着不安全的原因外,主要还是因为开源软件有源码,可以学习研究,另外就是体积小。

像Matlab每次装完都用不上什么功能,体积7-8个G,安装又慢,实在受不了,再用绝对只装Octave。

Photoshop我也基本只是当画画软件用,打算换成Krita,去年尝试编译了一下失败了,看了下官方说明才发现那么复杂,得等哪天有空好好折腾一次才行,毕竟最强开源绘画软件。

回到正文

参考的官方维基VS2015的编译,因为2015和2017通用性较好,所以几乎没遇到什么困难就通过了。

首先到官方下载wxWidgets-3.1.0源码,写本文时好像更新到3.1.1了,不过估计应该没太大区别

http://www.wxwidgets.org/downloads/

wxWidgets-3.1.0.7z解压后

VS2017打开

wxWidgets-3.1.0\build\msw\wx_vc14.sln

SDK版本选择更新,我是Win7就选的是8.1,如果是Win10可能就用10.x吧

Platform Toolset也更新到v141,然后选OK

切换到DLL Debug模式

在Solution上选

Build Solution

而非只编译单个项目

显示

Build: 24 succeeded, 0 failed, 0 up-to-date, 0 skipped

24成功,0失败

然后到来这个VS2015配置成功的版本,没使用官方版本是因为,写本文时官方版本似乎只能通过VS2013的配置,

而2015有些函数有改变,这在之前DX11工程2013升级到2015时也遇到过。

总之修改起来麻烦又费时,所以直接采用了这个VS2015的版本。

也许未来官方会直接加入VS2015及更高版本的支持,但是现在选择这个版本是最省力的办法,

下源码的目的是学习算法与逻辑处理实现,而不是浪费时间在无意义的配置上。

https://github.com/ShanghaiTimes/Audacity2015

我们需要VS2015这个分支,所以

git clone -b vs2015 https://github.com/ShanghaiTimes/Audacity2015.git

  

参考官方Windows下编译

https://github.com/audacity/audacity/blob/master/win/compile.txt

新建环境变量,换成你自己的安装位置

WXWIN = E:\CPPLibs\wxWidgets-3.1.0

Win7 VS2017编译Audacity2.1.3

下载ASIO SDK

https://www.steinberg.net/en/company/developers.html

新建环境变量,换成你自己的安装位置

ASIOSDK_DIR = E:\CPPLibs\ASIOSDK2.3

Win7 VS2017编译Audacity2.1.3

重新启动Visual Studio

打开

Audacity2015\win\audacity.sln

升级到对应版本,同上

Audacity上选Build

Win7 VS2017编译Audacity2.1.3

显示

audacity.rc

33行有错误

Win7 VS2017编译Audacity2.1.3

用notepad++打开audacity.rc看一下

Win7 VS2017编译Audacity2.1.3

看起来是行尾?应该改成"引号

Win7 VS2017编译Audacity2.1.3

修改后保存,再Build,成功

复制以下文件到

Audacity2015\win\Debug

目录下

wxbase31ud_net_vc_custom.dll
wxbase31ud_vc_custom.dll
wxbase31ud_xml_vc_custom.dll
wxmsw31ud_adv_vc_custom.dll
wxmsw31ud_core_vc_custom.dll
wxmsw31ud_html_vc_custom.dll
wxmsw31ud_qa_vc_custom.dll

EQDefaultCurves.xml

以及Languages文件夹整个

其实就是你安装一个Audacity

照猫画狗把少的文件复制过去就行,当然要用你自己编译的wxWidgets版本的DLL

Ctrl + F5,成功运行

打开
src/AudacityApp.cpp
文件

AudacityApp::OnInit

函数上下断点,F5调试,成功断下来

Win7 VS2017编译Audacity2.1.3

打开
src/toolbars/ControlToolBar.cpp

ControlToolBar::SetPlay

函数上下断点,载入音频,点击播放,成功断下来

完美收工

Win7 VS2017编译Audacity2.1.3

上一篇:[Clr via C#读书笔记]Cp19可空值类型


下一篇:弹出浮层css+JQuery