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

像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

下载ASIO SDK

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

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

ASIOSDK_DIR = E:\CPPLibs\ASIOSDK2.3

重新启动Visual Studio

打开

Audacity2015\win\audacity.sln

升级到对应版本,同上

Audacity上选Build

显示

audacity.rc

33行有错误

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

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

修改后保存,再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调试,成功断下来

打开
src/toolbars/ControlToolBar.cpp

ControlToolBar::SetPlay

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

完美收工

Win7 VS2017编译Audacity2.1.3的更多相关文章

  1. Win7 VS2017编译PBR渲染引擎google filament

    按照官方说明 https://github.com/google/filament 前置工具包 Windows 10 SDKVisual Studio 2017Clang 6Python 3.7Git ...

  2. Win7 VS2017编译Blender2.79

    去年在VS2013环境编译过一次,重装系统后换了VS2017,正好刚编译完Godot3.0.2,顺手把Blender也编译了吧. 官方Windows下编译指南 https://wiki.blender ...

  3. Win7 VS2017编译bgfx图形API

    官方的编译指南在这个页面 https://bkaradzic.github.io/bgfx/build.html#quick-start 目前的版本编译比较简单,下载3个项目,放于同级目录下 http ...

  4. Win7 VS2017编译magnum及例子

    magnum是一个开源的图形中间件 Lightweight and modular C++11/C++14 graphics middleware for games and data visuali ...

  5. Win7 VS2017编译Godot3.0.2和2.1.4

    千呼万唤屎出来,Godot终于发布3.0版本的源码了,今天是2018年3月17日,自去年接触过后,一直没事就刷刷Gayhub,看看3.0什么时候更新,刷了一年也没结果. 今天上Youtube无意中搜了 ...

  6. windows 平台使用 VS2017 编译openssl源码

    windows 平台使用 VS2017 编译openssl源码 1)依赖安装 安装 perl 脚本解释器 下载 http://libevent.net/download 安装 nasm 汇编器 C:\ ...

  7. 32位win7+vs2008编译mysql 5.6.22源码并安装

    以下这部分安装说明是来自http://www.2cto.com/database/201407/316681.html的win7+vs2010源码编译mysql,文章最后会说明用vs2008编译遇见的 ...

  8. windows 平台使用 VS2017 编译 libevent 源码

    一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...

  9. VS2017 编译 Visual Leak Detector + VLD 使用示例

    起因 一个Qt5+VS2017的工程,需要进行串口操作,在自动时发现一段时间软件崩溃了,没有保存log,在 debug 的时候发现每运行一次应用占据的内存就多一点,后来意识到是内存泄漏了.这个真是头疼 ...

随机推荐

  1. VirtualBox安装Ubuntu16.04过程

    1. 软件版本 Windows: Win7/Win10 VirtualBox: VirtualBox-6.0.24-108355-Win Ubuntu: ubuntu-16.04-desktop-am ...

  2. JavaScript遍历集合(for...of/for...in/forEach)

    var arr = [1,2,3]; var map = new Map(); map.set('baylor',22); var s = new Set(); s.add([1,2,3]); for ...

  3. 深入理解C++11【4】

    [深入理解C++11[4]] 1.基于范围的 for 循环 C++98 中需要告诉编译器循环体界面范围.如for,或stl 中的for_each: int main() { ] = { , , , , ...

  4. Dubbo 的配置主要分为三大类

    服务发现.服务治理和性能调优:这三类配置不是独立存在的,而是贯穿在所有配置项中的,比如dubbo:service 标签中的interface 是服务发现类, timeout是性能调优类, mock 是 ...

  5. day52类型转换 运算符 流程控制

    0.复习 1.导入 <div id="div1" onclick="this.style.color = 'red';">12345</div ...

  6. 这是一个新的开始at this very monment

    简单的介绍下此时自己的情况,和对近几年所做的事做一个总结,并展望下自己的未来和对自己的期待.我会将我的博客分成两种,一个是我的学习笔记,另一个是我的生活记录. 2018年六月底我毕业于一个普通的二本, ...

  7. easyui 单元格超出鼠标放上弹出全部

    其他方式:https://www.cnblogs.com/raitorei/p/9878192.html onLoadSuccess : function(data) { //单元格超出部分隐藏并鼠标 ...

  8. HTTP协议转码

    为什么要有转义的功能? 一些特殊字符需要转义,才能被访问,否则变为空格 UrlEnCode与UrlDeCode 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的 ...

  9. SpringBoot集成RabbitMQ 从零到一,学会MQ异步和解耦--

    RabbitMQ 概念 RabbitMQ 即一个消息队列,_主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用._RabbitMQ使用的是AMQP协议,它是一种二进制协议.默认启 ...

  10. node.js 从入门到。。。

    本人安装环境为 mac ,所以只记录了 mac 下的操作步骤 1.安装 node node的国内下载地址:http://nodejs.cn/download/ 安装之后,在终端输入指令 node -v ...