We assume you've installed and configured Visual Studio Express and the Microsoft Platform SDK as described in steps 1 & 2 on this page, and if you want to build x64 versions with the free Visual Studio Express, that you've done this hack or this one.
Qt now provides pre-built binaries for 32-bit Windows for the MSVC 2008 compiler (and the minGW one.) But if you want to build it from source yourself for whatever reason (like for x64,) here are the steps:
C:\qt-everywhere-opensource-src-4.6.1\src\plugins\sqldrivers\sqlite\sqlite.proDEFINES += SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS
C:\qt-everywhere-opensource-src-4.6.1\mkspecs\win32-msvc2008\qmake.conf:/MP to QMAKE_CFLAGS.-Ox to QMAKE_CFLAGS_RELEASE for “full optimization” (Though -O2 is preferred.)/arch:SSE to QMAKE_CFLAGS_RELEASE for SSE support (use SSE2 if your CPU supports it)QMAKE_LFLAGS_LTCG to /LTCG:STATUS so it tells you how long it will take to generate each executable (Some of them take a loooong time (WebKit and QtScript) so it's nice to know.)C:\qt-everywhere-opensource-src-4.6.1\qmake\makefile.win32 but don't add -GL to CFLAGS on x86 or qmake won't work. Otherwise, you can add any options suitable for your particular system since qmake is just going to run there. (e.g. /arch:SSE2)C:\qt-everywhere-opensource-src-4.6.1\mkspecs\win32-msvc2008\qmake.conf:QMAKE_CFLAGS_RELEASE from -MD to -MT/NODEFAULTLIB:“MSVCRT” to QMAKE_LFLAGS_RELEASE.If you want to link Qt against Agner Fog's optimized ASMLIB, do the following:
C:\asmlib/Oi- to QMAKE_CFLAGS/LIBPATH:“C:\asmlib” to QMAKE_LFLAGSalibcof32o.lib (or alibcof64o.lib for 64-bit) to QMAKE_LFLAGS (this ensures it's linked into every module)QMAKE_CFLAGS: /favor:AMD64 (or use blend or EM64T if appropriate), also add /MP if you have more than one processor/coreQMAKE_LFLAGS: /MACHINE:X64 (or IA64)QMAKE_CFLAGS_RELEASE for extra optimizationsCFLAGS: /favor:AMD64 (or use blend or EM64T if appropriate,) and -Ox for more optimizations if you wantLFLAGS: /MACHINE:X64 (or IA64)setenv /xp /x86 /release and hit Enter. (The /x86 is for those on x64 OSs to make sure it targets 32-bit platforms.)setenv /xp /x64 /release (or /ia64) and hit Enter.cd C:\qt-everywhere-opensource-src-4.6.1 (or wherever you unpacked Qt) and hit Enter.SET QT_BUILD_PARTS=LIBS (and add whatever other parts you want) and hit Enter.configure -opensource -platform win32-msvc2005 -qt-sql-sqlite and press Enter.-ltcg.-fast -no-vcproj -no-dsp.nmake and press Enter and you should be good (takes 1~3 hours.)<sdkdir>\winnt.h(1831) : error C2733: second C linkage of overloaded function '_interlockedbittestandset' not allowed then edit <sdkdir>\VC\INCLUDE\intrin.h and change the definition of _interlockedbittestandset and _interlockedbittestandreset to long volatile * like so:__MACHINEI(unsigned char _interlockedbittestandset(long volatile *a, long b)) __MACHINEI(unsigned char _interlockedbittestandreset(long volatile *a, long b))
Do nmake again and it should finish fine.
<sdkdir>\winnt.h(1831) : error C2733: second C linkage of overloaded function '_interlockedbittestandset64' not allowed then edit <sdkdir>\VC\INCLUDE\intrin.h and change the definition of _interlockedbittestandset64 and _interlockedbittestandreset64 to to _ _int64 volatile * like so:__MACHINEX64(unsigned char _interlockedbittestandset64(__int64 volatile *a, __int64 b)) __MACHINEX64(unsigned char _interlockedbittestandreset64(__int64 volatile *a, __int64 b))
Do nmake again and it should finish fine.
libsndfile fortunately provides binaries for Win32 and Win64, so all you need to do is:
mixxx-win32lib-msvc or mixxx-win64lib-msvc:libsndfile\libsndfile-1.dll libsndfile\libsndfile-1.lib (rename to sndfile.lib)
.h files from libsndfile\include to mixxx-win[32|64]lib-msvcsndfile.h errors when Mixxx's enginesidechain.cpp is compiling, edit mixxx-win[32|64]lib-msvc\sndfile.h and change the line typedef __int64_t sf_count_t ;
to:
typedef __int64 sf_count_t ;
PortAudio provides MSVC project files, which makes things nice. Just have the DirectX SDK installed and open and build. (Step-by-step is given below.)
If you're doing an x64 build with VS Express, you'll first need to change some things in the vcproj and sln file in a text editor before you open them in VS:
portaudio\build\msvc\portaudio.sln file:portaudio\build\msvc\portaudio.vcproj file:Name=“Win32” to Name=“DontWantThis” and Name=“x64” to Name=“Win32”portaudio\build\msvc\readme.txt and portaudio\src\hostapi\asio\ASIO-README.txt to prepare to build PA with ASIO support.setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)dx_setenv.cmd, the DirectX SDK environment variable setup script here to add the DirectX paths. (e.g. C:\Program Files\Microsoft DirectX SDK (March 2009)\Utilities\Bin\dx_setenv.cmd)C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)portaudio\build\msvc\portaudio.vcproj file via File→Open→Project/Solution. After doing the upgrade, you'll only see “Win32” targets if you're using VS Express. (If you've made the changes to the project files given above, building these will actually give you x64 versions. We had to do it this way otherwise VS Express would see the x64 targets in the file and refuse to make them available to you, since that's a premium feature of non-free versions of VS.)portaudio project and click PropertiesPA_USE_ASIO=1 and PA_USE_DS=1mixxx-win32lib-msvc or mixxx-win64lib-msvc: portaudio\include\portaudio.h portaudio\build\msvc\Win32\Release\portaudio_x86.dll (or portaudio_x64.dll) portaudio\build\msvc\Win32\Release\portaudio_x86.lib (or portaudio_x64.lib. Rename either to portaudio.lib)
PortMidi provides MSVC project files, which makes things nice. Just open and build. (Step-by-step is given below.)
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)portmidi\ALL_BUILD.vcproj file via File→Open→Project/Solution./MACHINE:X64mixxx-win32lib-msvc or mixxx-win64lib-msvc: portmidi\pm_common\portmidi.h portmidi\Release\portmidi.lib portmidi\Release\portmidi.dll
PortMidi provides MSVC project files, which makes things nice. Just open and build. (Step-by-step is given below.)
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)portmidi\porttime\porttime.vcproj file via File→Open→Project/Solution. (If on VS2005, use the porttime-VC8.vcproj file.)portmidi\porttime\porttime.h(20) : fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory then edit the project properties and add mixxx-win32lib-msvc (or 64) to Additional Include Directoriesmixxx-win32lib-msvc or mixxx-win64lib-msvc: portmidi\porttime\porttime.h portmidi\porttime\Release\porttime.lib
Xiph.org provides MSVC project files, which makes things nice. Just open and build. (Step-by-step is given below.)
If you're doing an x64 build with VS Express, you'll first need to change some things in the vcproj and sln files in a text editor before you open them in VS:
Do this to all of the following files:
libogg-1.1.4\win32\VS2008\libogg_dynamic.sln libogg-1.1.4\win32\VS2008\libogg_dynamic.vcproj
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)libogg-1.1.4\win32\VS2008\libogg_dynamic.vcproj file via File→Open→Project/Solution. You'll only see “Win32” targets if you're using VS Express. (If you've made the changes to the project files given above, building these will actually give you x64 versions. We had to do it this way otherwise VS Express would see the x64 targets in the file and refuse to make them available to you, since that's a premium feature of non-free versions of VS.)mixxx-win32lib-msvc or mixxx-win64lib-msvc: libogg-1.1.4\win32\VS2008\Win32\Release_SSE2\libogg.dll libogg-1.1.4\win32\VS2008\Win32\Release_SSE2\libogg.lib (rename to ogg.lib)
.h files from libogg-1.1.4\include\ogg into mixxx-win[32|64]lib-msvc\oggXiph.org provides MSVC project files, which makes things nice. Just open and build. (Step-by-step is given below.) Libvorbis depends on libogg, so build that first.
If you're doing an x64 build with VS Express, you'll first need to change some things in the vcproj and sln files in a text editor before you open them in VS:
Do this to all of the following files:
libvorbis-1.2.3\win32\VS2008\vorbis_dynamic.sln libvorbis-1.2.3\win32\VS2008\libvorbis\libvorbis_dynamic.vcproj libvorbis-1.2.3\win32\VS2008\libvorbisfile\libvorbisfile_dynamic.vcproj
libvorbis-1.2.3\win32\VS2008\libogg.vsprops and make sure the LIBOGG_VERSION at the bottom matches the version of libogg you built above.setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)libvorbis-1.2.3\win32\VS2008\vorbis_dynamic.sln file via File→Open→Project/Solution. You'll only see “Win32” targets if you're using VS Express. (If you've made the changes to the project files given above, building these will actually give you x64 versions. We had to do it this way otherwise VS Express would see the x64 targets in the file and refuse to make them available to you, since that's a premium feature of non-free versions of VS.)libvorbis and click Buildlibvorbisfile and click Buildmixxx-win32lib-msvc or mixxx-win64lib-msvc: libvorbis-1.2.3\win32\VS2008\Win32\Release_SSE2\libvorbis.dll libvorbis-1.2.3\win32\VS2008\Win32\Release_SSE2\libvorbis.lib libvorbis-1.2.3\win32\VS2008\Win32\Release_SSE2\libvorbisfile.dll libvorbis-1.2.3\win32\VS2008\Win32\Release_SSE2\libvorbisfile.lib
libvorbis-1.2.3\include\vorbis folder from into mixxx-win[32|64]lib-msvc. You can delete the Makefiles inside, as we just need the .h files.vorbis.def : error LNK2001: unresolved external symbol _analysis_output_always
comment the line _analysis_output_always in libvorbis-1.2.3\win32\vorbis.def (line 51 in my copy.) Press F7 again and it should build fine.
MAD provides MSVC project files, which makes things nice. Just open and build. (Step-by-step is given below.)
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)libmad-0.15.1b\msvc++\libmad.dsp file via File→Open→Project/Solution.libmad and click PropertiesFPM_INTEL to FPM_64BITmixxx-win32lib-msvc or mixxx-win64lib-msvc: libmad-0.15.1b\mad.h libmad-0.15.1b\msvc++\Release\libmad.lib
MAD provides MSVC project files, which makes things nice. Just open and build. (Step-by-step is given below.)
LibID3Tag needs ZLib headers, so we have to get them too (detailed below.)
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)libid3tag-0.15.1b\msvc++\libid3tag.dsp file via File→Open→Project/Solution.libid3tag and click Propertiesc:\temp\zlib123mixxx-win32lib-msvc or mixxx-win64lib-msvc: libid3tag-0.15.1b\id3tag.h libid3tag-0.15.1b\msvc++\Release\libid3tag.lib (rename to id3tag.lib)
..\file.c(33) : fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
then edit the file libid3tag-0.15.1b-patched\file.c and change the line
# include "config.h"
to
# include "msvc++/config.h"
Save that and press F7 to rebuild.
FAAD2 provides MSVC project files, which makes things nice. Just open and build. (Step-by-step is given below.)
faad2-2.7\libfaad\common.h:#if defined(_WIN32) && !defined(__MINGW32__)
and replace it with
#if defined(_WIN64) && !defined(__MINGW64__) // No LRINTF until someone writes an .asm file #elif defined(_WIN32) && !defined(__MINGW32__)
faad2-2.7\libfaad\libfaad2.def file and add the following lines to the bottom: NeAACDecPostSeekReset @10 NeAACDecDecode2 @11
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)/useenv switch to have it use the Platform SDK compile tools, libs and includes. (e.g. C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)faad2-2.7\libfaad\libfaad2_dll.vcproj file via File→Open→Project/Solution.libfaad2_dll project and go to Propertiesc:\temp\faad2-2.7\includefaad2-2.7\libfaad\common.h(42) : fatal error C1083: Cannot open include file: 'neaacdec.h': No such file or directory then under project Configuration properties→C/C++→General:..\include mixxx-win32lib-msvc or mixxx-win64lib-msvc: faad2-2.7\libfaad\include\faad.h faad2-2.7\libfaad\include\neaacdec.h faad2-2.7\libfaad\include\libfaad\ReleaseDLL\libfaad2.dll faad2-2.7\libfaad\include\libfaad\ReleaseDLL\libfaad2.lib (rename to libfaad.lib)
MP4V2 provides MSVC solution files, which makes things nice. Just open and build. (Step-by-step is given below.)
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)mp4v2-1.9.1\vstudio9.0\libmp4v2\libmp4v2.vcproj file via File→Open→Project/Solution.libmp4v2 and click Build.mixxx-win32lib-msvc or mixxx-win64lib-msvc: mp4v2-1.9.1\vstudio9.0\Release\libmp4v2.dll mp4v2-1.9.1\vstudio9.0\Release\libmp4v2.lib mp4v2-1.9.1\include\mp4v2 (the whole directory)
libFLAC provides MSVC solution files, which makes things nice.
libFLAC requires The Netwide Assembler to build.
nasm.exe to nasmw.exe since that's what the FLAC sources look forNote: For x64 as of FLAC v1.2.1, we have been unable to get it to build. It gives the following errors:
bitreader_asm.obj : error LNK2001: unresolved external symbol _FLAC__crc16_table bitreader_asm.obj : error LNK2001: unresolved external symbol _bitreader_read_from_client_
The only solution currently found is to download the OpenCodecs source and use the opencodecs\src\lib\codecs\flac\libs\libflac\src\libFLAC\libFLAC_dynamic.vcproj as-is and skip the rest of this section.
libogg-1.1.4\win32\VS2008\Win32\Release_SSE\libogg_static.lib to flac-1.2.1\obj\release\lib and rename it to ogg_static.lib-f win32 with -f win64: flac-1.2.1\src\libFLAC\libflac_dynamic.dsp flac-1.2.1\src\libFLAC\libflac_dynamic.vcproj flac-1.2.1\src\libFLAC\libflac_static.dsp flac-1.2.1\src\libFLAC\libflac_static.vcproj
flac-1.2.1\src\libFLAC\bitreader.c:--- flac-1.2.1-original\src\libFLAC\bitreader.c Tue Sep 11 06:48:56 2007 +++ flac-1.2.1\src\libFLAC\bitreader.c Tue May 20 12:30:08 2008 @@ -149,15 +149,37 @@ FLAC__CPUInfo cpu_info; }; -#ifdef _MSC_VER -/* OPT: an MSVC built-in would be better */ + +/* local_swap32_() */ +/* Swaps the byte order of a 32 bits integer, converting between big-endian and little-endian */ +#if defined(_MSC_VER) + +#include <stdlib.h> // Contains _byteswap_ulong() for MSVC according to MSDN static _inline FLAC__uint32 local_swap32_(FLAC__uint32 x) { + /* This is an intrinsic and will expanded to minimal asm by the compiler */ + return _byteswap_ulong(x); +} + +#else /* defined(_MSC_VER) */ + +static _inline FLAC__uint32 local_swap32_(FLAC__uint32 x) +{ + /* Manual version, a bit slower but works everywhere */ x = ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF); return (x>>16) | (x<<16); } + +#endif /* defined(_MSC_VER) */ + + +/* local_swap32_block_() */ +/* Swaps the byte order of an array of 32 bits integers */ +#if defined(_MSC_VER) && !defined(FLAC__NO_ASM) || !defined(_M_X64) + static void local_swap32_block_(FLAC__uint32 *start, FLAC__uint32 len) { + /* MSVC specific 32 bit asm version */ __asm { mov edx, start mov ecx, len @@ -173,7 +195,22 @@ done1: } } -#endif + +#else /* defined(_MSC_VER) && !defined(FLAC__NO_ASM) || !defined(_M_X64) */ + +static void local_swap32_block_(FLAC__uint32 *start, FLAC__uint32 len) +{ + /* MSVC specific intrinsic version */ + while(len > 0) + { + *start = local_swap32_(*start); + ++start; + --len; + } +} + +#endif /* defined(_MSC_VER) && !defined(FLAC__NO_ASM) || !defined(_M_X64) */ + static FLaC__INLINE void crc16_update_word_(FLAC__BitReader *br, brword word) {
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)C:\nasm-2.09.03C:\libogg-1.1.4\includeflac-1.2.1\FLAC.sln file and agree to upgrade if askedlibFLAC_dynamic project to just libFLAClibFLAC_dynamic and libFLAC_static projects:FLAC__NO_ASM;
at the front of the Preprocessor Definitions list
/MACHINE:X64 for Target MachineNolibFLAC_dynamic and click Build.mixxx-win32lib-msvc or mixxx-win64lib-msvc: flac-1.2.1\obj\release\lib\libFLAC.lib flac-1.2.1\obj\release\lib\libFLAC.dll flac-1.2.1\include\FLAC (the whole directory)
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)HSS1394\code\builds\win32\libHSS1394_dll_VC90.vcproj file via File→Open→Project/Solution.;_WIN64_$(OutDir)\HSS1394.dll$(OutDir)\HSS1394.liblibHSS1394 and click Build.mixxx-win32lib-msvc or mixxx-win64lib-msvc: HSS1394\lib\HSS1394.lib HSS1394\lib\HSS1394.dll HSS1394\inc (the whole directory, and rename it to HSS1394)
mixxx-win[32|64]lib-msvc\HSS1394\HSS1394Types.h source file and change line 65 to:#ifdef __WINDOWS__
Libshout is a library for live audio broadcasting over the Internet. It is developed by the icecast.org project.
libshout requires libogg, libvorbis, and PThreads.
libshout requires POSIX threads for Windows. It's a piece of cake to build:
pthreads-w32-2-8-0-release.tar.gz and pick the latest one.)pthreads and libshout folders are at the same level)pthread_cancel.cptw32_register_cancelation ((PAPCFUNC)ptw32_cancel_callback, threadH, 0);
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)cd to the directory you unpacked it tonmake clean VC and hit Enter.mt.exe -manifest pthreadVC2.dll.manifest -outputresource:pthreadVC2.dll;2
and hit Enter.
mixxx-win32lib-msvc or mixxx-win64lib-msvc: pthreads\pthreadVC2.dll
Thanks to Prokoba's blog for guidance!
icecast-2.3.2\src\compat.h to libshout-2.2.2\includelibshout-2.2.2\src\timing\timing.h:#ifdef _mangle block#ifdef _WIN32 line, add #undef int64_t #undef uint64_t
libshout-2.2.2\src\shout.c:inline with __inline
ret = sock_write_bytes (self->socket, (char*)data + pos, len - pos);
#ifndef __MINGW32__
#define va_copy(ap1, ap2) memcpy(&ap1, &ap2, sizeof(va_list))
#endif
libshout-2.2.2\include\shout\shout.h.in to shout.hlibshout-2.2.2\include\shout\shout.h to mixxx-win[32|64]lib-msvc\shoutlibshout-2.2.2\include\os.h to mixxx-win[32|64]lib-msvc\shoutmixxx-win[32|64]lib-msvc\shout\shout.h:#include <os.h>
to
#include "os.h"
#ifdef __WINDOWS__
libshout-2.2.2\include\shout\shout.h and place __declspec(dllexport)
in front of every function definition
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)libshout-2.2.2\win32\libshout.dsp file via File→Open→Project/Solution and upgrade if needed.libshout-2.2.2\src\vorbis.c and drag it to the Source Files folder in the projectlibshout and choose Properties.Additional Include Directories: ..\..\pthreads-w32-2-8-0-release,..\..\libvorbis-1.2.3\include,..\..\libogg-1.1.4\include,..\..\libvorbis-1.2.3\include\vorbis,
compat.h, add the path to the Icecast server source as well, ..\..\icecast-2.3.2\src..\..\pthreads)mixxx-win[32|64]lib-msvc at this point, so you can just enter the path to that.)pthreadVC2.lib Ws2_32.lib winmm.lib ogg.lib vorbis.liblibshout and click Build. (If you get a bunch of “already defined” errors, go to Configuration Properties→Linker and under Linker, for Ignore Specific Library, enter LIBCMT.lib.)mixxx-win32lib-msvc or mixxx-win64lib-msvc: libshout-2.2.2\win32\Release\libshout.lib libshout-2.2.2\win32\Release\libshout.dll
You downloaded the zlib source above for libogg, but we actually need to build it for taglib.
If you're doing an x64 build with VS Express, you'll first need to change some things in the vcproj and sln files in a text editor before you open them in VS:
Do this to all of the following files:
zlib-1.2.5\contrib\vstudio\vc9\zlibvc.sln zlib-1.2.5\contrib\vstudio\vc9\zlibvc.vcproj
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)zlib-1.2.5\contrib\vstudio\vc9\zlibvc.vcproj file via File→Open→Project/Solution.zlibvc project and choose PropertiesZLIB_DLL to the list of Preprocessor DefinitionsMulti-threaded DLL (/MD)zlibvc project again and click Buildmixxx-win[32|64]lib-msvc:zlib-1.2.5\contrib\vstudio\vc9\x86\ZlibDllRelease\zlibwapi.dll
(We don't need .h or .lib files for this since Mixxx itself doesn't use it.)
setenv /xp /x64 /release and hit Enter. (Or setenv /xp /x86 /release for 32-bit.)cd to where taglib is extracted, e.g. C:\sources\taglib-1.6.3cmake -DWITH_ASF=ON -DWITH_MP4=ON -DZLIB_LIBRARY="C:\path\to\zlib123\projects\visualc6\Win32_DLL_Release\zlib1.lib" -DZLIB_INCLUDE_DIR="C:\path\to\zlib123" -G "Visual Studio 9 2008"
(for x64 use “Visual Studio 9 2008 Win64”)
machine:Win32 with machine:x64 taglib-1.6.3\taglib.sln taglib-1.6.3\taglib\tag.vcproj
C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe /useenv)taglib-1.6.3\taglib\tag.vcproj file via File→Open→Project/Solution. (If on x64, ignore the platform warnings. The “tag” project should appear build-able.)tag and click Build.mixxx-win32lib-msvc or mixxx-win64lib-msvc: taglib-1.6.3\taglib\Release\tag.lib taglib-1.6.3\taglib\Release\tag.dll
ZLIB_WINAPI from the list. (You may also need to add ZLIB_DLL.)taglib folder in mixxx-win[32|64]lib-msvc: <code>taglib-1.6.3\taglib\toolkit\tfile.h
taglib-1.6.3\taglib\toolkit\taglib.h
taglib-1.6.3\taglib\toolkit\tbytevector.h
taglib-1.6.3\taglib\taglib_export.h
taglib-1.6.3\taglib_config.h
taglib-1.6.3\taglib\ape\apetag.h
taglib-1.6.3\taglib\tag.h
taglib-1.6.3\taglib\toolkit\tstring.h
taglib-1.6.3\taglib\toolkit\tmap.h
taglib-1.6.3\taglib\toolkit\tmap.tcc
</code>.h file from the taglib source tree into mixxx-win[32|64]lib-msvc\taglib. Some of the files just #include their counterparts in other directories with the actual content, so be careful to get the actual content ones.taglib-1.6.3\taglib_config.h into mixxx-win[32|64]lib-msvcMixxx can benefit from various code optimizations. If you right-click each MSVC project and click Properties, you can set many optimization options. You can do any or all of the following:
/favor:AMD64, /favor:EM64T (Intel64,) or /favor:blend (about the same on both)/LTCGIf you want to link any of the VC++ projects against Agner Fog's optimized ASMLIB, do the following:
C:\asmlibC:\asmlibC:\asmlib/Oi- to Additional Options.alibcof64o.lib (or alibcof32o.lib for 32-bit) to “Additional Dependencies”Note: Don't link libid3tag, libmad, taglib, or libshout with ASMLIB if you want to be able to link Mixxx itself with it.