1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00

Remove win/compile.txt which was accidentally re-introduced.

win/build.txt is its replacement.
This commit is contained in:
James Crook 2018-11-02 23:09:16 +00:00
parent fb15558a07
commit 88c70f3c37

View File

@ -1,298 +0,0 @@
Building Audacity(R) for Microsoft Windows(R)
Copyright (c) 1999-2018 Audacity Team
Authors:
Asger Ottar Alstrup
Lynn Allan
Vince Busam
James Crook
Dave Fancella
Vaughan Johnson
Steve Jolly
Leland Lucius
Markus Meyer
Shane Mueller
Martyn Shaw
========================================================================
This document is for Audacity version 2.3.1
If the advice here is inaccurate or incomplete,
email audacity-devel@lists.sourceforge.net.
WE ARE MOVING FROM WXWIDGETS 3.0.2 to 3.1.1 AND FROM MSVC 2013 to
MSVC 2017. CURRENTLY THIS DOCUMENT MAY HAVE A FEW ERRORS AND OMISSIONS
RELATING TO THAT. THESE SHOULD BE FIXED BY MAY 12TH 2018. DETAILS?
ASK ON audacity-devel@lists.sourceforge.net.
========================================================================
Audacity releases for Windows are currently built with Microsoft Visual
Studio 2013 C++. Most of us use the Express edition, which is free.
Note that Audacity uses VC++'s multithreaded DLL runtime libraries.
If you have MSVC installed, these are in your PATH, but users to
whom you distribute your builds may not have them, so you may have
to distribute them, as described for the wxWidgets DLLs, below.
------------------------------------------------------------------------
MSVC++ STEP 1: Download wxWidgets
------------------------------------------------------------------------
To simplify the implementation of a near-identical user
interface across platforms, Audacity uses wxWidgets, a
GUI framework.
Audacity 2.3.0 can on windows use wxWidgets 3.1.1 without patches.
For versions of Audacity that need a patched wxWidgets,
download our patched wxWidgets from the 'audacity-fixes-3.1.1'
branch of https://github.com/audacity/wxWidgets
------------------------------------------------------------------------
MSVC++ STEP 2: Download source code for Audacity
------------------------------------------------------------------------
Checkout the latest Audacity code from our GitHub repository
at https://github.com/audacity/audacity/ (see GitHub for help).
------------------------------------------------------------------------
MSVC++ STEP 3: Build wxWidgets
------------------------------------------------------------------------
These steps assume the wxWidgets source code was extracted to
the root of C:\ and renamed "C:\wxWidgets-3.1.1\".
3.1. Open "C:\wxWidgets-3.1.1\build\msw\wx_XXX.sln" with
Microsoft Visual Studio, where XXX is the version for your compiler.
XXX is 12 for MSVC 2013.
3.2. Build wxWidgets for all configurations of Audacity that you want.
* Use the "DLL Release" configuration to use in a
"Release" version of Audacity.
* Build "DLL Debug" configuration to use in a
"Debug" version of Audacity.
You're encouraged to try out the samples in wxWidgets to check that
wxWidgets is built and working.
------------------------------------------------------------------------
MSVC++ STEP 4: Set wxWidgets location for Audacity
------------------------------------------------------------------------
The Audacity Visual Studio project has been set up to use environment
variables to locate all externally referenced SDKs. For wxWidgets, it
uses the "WXWIN" environment variable.
Before you can build Audacity, you must set the variable. This process
can vary depending on the version of Windows you're using. The following
is based on Windows 7, so you may need to make adjustments.
4.1. Open the "Control Panel"
4.2. Click the "System" app
4.3. Click the "Advanced system settings" link
4.4. On the "Advanced" tab, click the "Environment Variables..." button
4.5. Click "New..." in the "System variables" group
4.6. Set the "Variable name" to "WXWIN" (without the quotes)
4.7. Set the "Variable value" to the full path of where you installed
wxWidgets (typically "C:\wxWidgets-3.1.1")
4.8. Click "OK" until you exit the "System Properties" app
An alternative way to do it, that's available on all versions of Windows,
is to open a cmd.exe window, and type:
set WXWIN =C:\wxWidgets-3.1.1
Once you have set the WXWIN environment variable correctly, the Audacity
Project file's declarations will do the rest.
Note that if you currently have the Audacity Solution open in Visual
Studio, you must restart Visual Studio for it to recognize the new
environment variables.
In some cases, you may need to reboot the computer to ensure
the variables are read correctly.
If you are in a hurry, you can skip step 5.
------------------------------------------------------------------------
MSVC++ STEP 5: Consider and Configure Optional Features
------------------------------------------------------------------------
5.1. Locally installed help is optional, but required for a full Release
build. (The "help" folder is included in the installer, but removed from
the zip distribution.) The Python library is required, obtainable from
http://www.python.org/download/ . Add the location of the top-level
directory where you installed Python to your Path environment
variable. For instructions on setting environment variables, see the
previous section, "MSVC++ STEP 4: Set wxWidgets location for Audacity".
Build the "help" project by enabling it in the MS Visual Studio
Configuration Manager (Build menu). This will download a copy of the
Manual wiki onto your machine and copy it to the correct place for
your build. If the local copy needs to be updated, run
audacity\scripts\mw2html_audacity\wiki2htm.bat
and re-build the "help" project.
5.2. To support languages other than English in your build of Audacity,
you must enable and build the optional "locale" project. This is
required for a full release. You will need to obtain msgfmt.exe from
https://sourceforge.net/projects/cppcms/files/boost_locale/gettext_for_windows/
Add the location of the directory containing msgfmt.exe to your Path
environment variable. Alternatively, put msgfmt.exe somewhere already in the
Path,
e.g., C:\Windows.
5.3. Some functionality in Audacity is currently turned on in its default
configuration, but requires that extra libraries be downloaded
separately to use it.
To change the libraries enabled in Audacity, edit
"win\configwin.h" and comment or uncomment the entries.
5.4. To add support for ASIO:
ASIO (from Steinberg) is a sound card interface protocol that is faster
than standard WMME. Unlike WMME, not all soundcard drivers support it.
Because ASIO is a proprietary, closed standard, we (or any third party)
cannot distribute its SDK. That means we cannot distribute builds of
Audacity that support ASIO, because Audacity is licensed under the GPL
(http://audacityteam.org/about/license), which requires we
distribute all source code.
So, although you can build your own copies of Audacity with
ASIO support, for personal use, you cannot distribute them without
violating the Audacity license and the ASIO license.
If you build ASIO support into Audacity, do not distribute that build.
For ASIO support, get the ASIO SDK from Steinberg
(http://www.steinberg.net/en/company/developers.html),
install at C:\ASIOSDK, then define an environment variable called
ASIOSDK_DIR.
The value should be the full path to the base directory of the
ASIO SDK, e.g.,
set ASIOSDK_DIR=C:\ASIOSDK
------------------------------------------------------------------------
MSVC++ STEP 6: Build Audacity
------------------------------------------------------------------------
Run Visual C++ and load the Audacity solution,
"audacity\win\audacity.sln".
Select the configuration that you wish to build:
* "Release" for Unicode-based, general use
* "Debug" for a Unicode-based, slower, debuggable
executable
You can select the configuration from the Solution
Configurations pull-down menu, or select it from the "Build"
menu > "Configuration Manager..." dialog box.
Build Audacity by giving the "Build" menu > "Rebuild Solution"
command.
------------------------------------------------------------------------
MSVC++ STEP 7: Provide Access to the wxWidgets DLLs
------------------------------------------------------------------------
Each Audacity executable needs access to seven specific wxWidgets
DLLs from those you built in "MSVC++ STEP 2: Build wxWidgets"
above. You can copy them to your Windows PATH, or more simply,
to the same directory as the executable. If you are building
Audacity for public release using the *.iss installer script,
you must copy them to the executable directory. The DLLs required
are at "C:\wxWidgets-3.1.1\lib\vc_dll":
wxbase311*_net_vc_custom.dll
wxbase311*_vc_custom.dll
wxmsw311*_adv_vc_custom.dll
wxmsw311*_core_vc_custom.dll
wxmsw311*_html_vc_custom.dll
wxbase311*_xml_vc_custom.dll
wxmsw311*_qa_vc_custom.dll
The "*" in the file names above is replaced in the actual files by
a suffix specific to its Widgets configuration. You can identify the
DLLs needed for each Audacity version as follows:
"u" for "Unicode Release" versions
"ud" for "Unicode Debug" versions
So for instance, a Debug version of Audacity should have:
wxbase311ud_net_vc_custom.dll
wxbase311ud_vc_custom.dll
wxmsw311ud_adv_vc_custom.dll
wxmsw311ud_core_vc_custom.dll
wxmsw311ud_html_vc_custom.dll
wxbase311ud_xml_vc_custom.dll
wxmsw311ud_qa_vc_custom.dll
in the "audacity\win\Debug" directory.
------------------------------------------------------------------------
HELP! I get linker errors!
------------------------------------------------------------------------
In some cases, Audacity does compile, but during the linking
process you get a bunch of error messages like this:
LIBCMTD.lib(LIBCMTD.dll) : error LNK2005: _free
already defined in MSVCRTD.lib(dbgheap.obj)
This is usually caused by conflicting runtime library settings.
Audacity is now linked with DLL linkage and our windows project file ONLY has
DLL linkage, so we think this problem has gone. If it does happen, check the
following:
In MSVC 2013, select the Audacity project. Then
Project > Properties > Configuration Properties > C/C++ >
Code Generation > Runtime Library
should be
"Multi-threaded Debug DLL (/MDd)" for Debug builds,
or
"Multi-threaded DLL (/MD)" for Release builds.
Make sure you set the correct library type for all corresponding build
configurations.
Also make sure you check all other libraries, like the Ogg Vorbis
libraries, if you have them installed.
You may want to use the /VERBOSE:LIB linker parameter to
get information about which library is causing the conflict.
If all else fails, use the following procedure to force
Audacity to link to the correct library:
Select the Audacity project in Solution Explorer.
Then choose Project > Properties.
Select the desired configuration (e.g., "Debug" or "Release").
Select the "Linker" folder in the tree on the left, and the
"Input" item. In the "Ignore Specific Library" field, enter
"msvcrt.lib" if you were attempting to perform a
Release build, or "msvcrtd.lib" for a Debug build.
On some systems, you will need to ignore "libcmt.lib"
or "libcmtd.lib" instead of "msvcrt.lib" or "msvcrtd.lib",
depending on the library which actually causes the conflict.
Note that if you have configured all libraries correctly,
none of the above should actually be necessary.
If you still receive errors, it often helps to try it again with
a clean installation of the wxWidgets sources and the latest Audacity
source from GitHub. Also check "Common compilation errors" on:
http://wiki.audacityteam.org/wiki/Developing_On_Windows#common
for more assistance.