Solved! Found the clue here, see step 5:
http://www.tannerhelland.com/5076/compile-zlib-winapi-wapi-stdcall/

I just added "#undef ZLIB_WINAPI" to the top of zlib-1.2.8/zconf.h. Rebuilt
zlib and taglib and it linked correctly.


Now I can cleanly build the dependencies with these errata:

1) Needed CMake installed and on the PATH. The wiki should be updated.

2) Needed updated scripts from Max for chromaprint and taglib, see 3 posts
earlier.

3) Needed to undefine ZLIB_WINAPI when building zlib so taglib would link.
I don't know the best way to integrate this into the build; I just hacked
zconf.h which is probably not ideal.

On Fri, Oct 24, 2014 at 5:35 PM, Ryan Kramer <default.kra...@gmail.com>
wrote:

> Aha! I noticed that the link error was contained within a conditional
> compile. (Line 253 of id3v2frame.cpp for reference) So I forced HAVE_ZLIB
> to be 0 (by modifying ConfigureChecks.cmake). Then it built successfully.
>
> Max and/or others, can you confirm that you are building successfully with
> HAVE_ZLIB defined as 1?
>
> This still leaves the mystery of "why can't my linker resolve
> _uncompress?" It seems to be passed correctly to link.exe, and I even used
> dumpbin to verify that "_uncompress@16" is an exposed symbol from
> zlibwapi.lib. The only strange thing is that I have never seen this syntax
> (calling a static function on nothing?), but my compiler seems perfectly OK
> with it:
>
>     ::uncompress((Bytef *) data.data(),
>                  (uLongf *) &uLongTmp,
>                  (Bytef *) frameData.data() + frameDataOffset,
>                  size());
>
> On Fri, Oct 24, 2014 at 2:22 PM, Ryan Kramer <default.kra...@gmail.com>
> wrote:
>
>> Thank you, with the modified scripts I get much closer. Chromaprint
>> builds successfully now. The only remaining error is a link error for
>> taglib:
>>
>>      Creating library
>> C:/code/github/mixxxBuild/buildserver/build/taglib-1.9.1/taglib/Release/tag.lib
>> and object
>> C:/code/github/mixxxBuild/buildserver/build/taglib-1.9.1/taglib/Release/tag.exp
>> id3v2frame.obj : error LNK2019: unresolved external symbol _uncompress
>> referenced in function "protected: class TagLib::ByteVector __thiscall
>> TagLib::ID3v2::Frame::fieldData(class TagLib::ByteVector const &)const "
>> (?fieldData@Frame@ID3v2@TagLib@@IBE?AVByteVector@3@ABV43@@Z)
>> [C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>> C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\Release\tag.dll
>> : fatal error LNK1120: 1 unresolved externals
>> [C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>>
>> I am currently copying everything into C:/mixxx/environments/prototype to
>> see if that resolves it, but that will take some time on this laptop :)
>>
>> On Fri, Oct 24, 2014 at 10:16 AM, Max Linke <max_li...@gmx.de> wrote:
>>
>>> Hi
>>>
>>> Did cmake installing actually fix building the missing dependencies? As
>>> far as I
>>> can see from the logs of Ferran it did not. Please don't change the build
>>> instructions until your issues are actually fixed.
>>>
>>> We still have some hardcoded paths in the VS solutions produced by cmake.
>>> Unfortunately we can't create the VS solutions during the build process
>>> since we
>>> need to edit them to allow creating Windows XP binaries. During the
>>> build cmake
>>> wants to rerun itself for a reason I don't understand currently and uses
>>> the
>>> hardcoded path.
>>>
>>> You can try several ways to fix this. Either build the dependencies in
>>> the
>>> folder `C:\mixxx/environments/prototype/build` or modify the build
>>> scripts to
>>> run cmake for every build and directly us the VS solutions from cmake.
>>>
>>> I have modified build scripts uploaded on github.
>>>
>>>
>>> https://github.com/kain88-de/buildserver/blob/custom_windows/build_chromaprint.bat
>>>
>>> https://github.com/kain88-de/buildserver/blob/custom_windows/build_taglib.bat
>>>
>>> I actually tried both ways and now I can build the dependencies on any
>>> folder. I
>>> have no idea why this is possible for me and not for you right now. When
>>> I'm
>>> back home I can look a bit more into it.
>>>
>>> It would be nice if you can report back about your experience.
>>>
>>> best Max.
>>>
>>> On Thu, 23 Oct 2014 15:57:04 -0500
>>> Ryan Kramer <default.kra...@gmail.com> wrote:
>>>
>>> > I just tried building the dependencies on windows and reached the same
>>> > errors as Ferran.
>>> >
>>> > First of all, I didn't have CMake installed. I tried to update the
>>> > instructions on this wiki page (
>>> > http://mixxx.org/wiki/doku.php/compiling_on_windows) but the Edit
>>> link gave
>>> > this error. "Sorry, there was an error processing your request. If
>>> this is
>>> > an error contact us at info AT mydomain.com." To be fair, I'm not
>>> sure if
>>> > I'm supposed to have permission to edit wiki pages.
>>> >
>>> > Once I installed CMake, I got errors like:
>>> >
>>> > CUSTOMBUILD : CMake error : The source directory
>>> > "C:/mixxx/environments/prototype/build/chromaprint-1.1" does not
>>> appear to
>>> > contain CMakeLists.txt.
>>> >
>>> [C:\code\github\mixxxBuild\buildserver\build\chromaprint-1.1\src\chromaprint.vcxproj]
>>> >
>>> > and
>>> >
>>> > CUSTOMBUILD : CMake error : The source directory
>>> > "C:/mixxx/environments/prototype/build/taglib-1.9.1" does not appear to
>>> > contain CMakeLists.txt.
>>> >
>>> [C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>>> >
>>> > Why is it looking in the directory "C:/mixxx/..."? On my machine, the
>>> file
>>> > exists at
>>> >
>>> "C:\code\github\mixxxBuild\buildserver\build\chromaprint-1.1\CMakeLists.txt".
>>> > It looks like the former path is mistakenly hard-coded. It seems the
>>> only
>>> > two dependencies with this problem (chromaprint and taglib) are also
>>> the
>>> > only two that use CMake...
>>> >
>>> >
>>> > Since those two dependencies didn't build, I wasn't expecting a clean
>>> build
>>> > of mixxx. However, it is strange that I get errors like
>>> "ERROR:root:Unmet
>>> > dependency: Did not find libportaudio.a, portaudio.lib, or the
>>> > PortAudio-v19 development header files." I am pretty sure my
>>> WINLIB_PATH is
>>> > correct:
>>> >
>>> > set WINLIB_PATH=C:\code\github\mixxxBuild\buildserver
>>> >
>>> > And portaudio.lib definitely exists in
>>> > "C:\code\github\mixxxBuild\buildserver\lib". It seems to have built
>>> just
>>> > fine.
>>> >
>>> > I will keep investigating as I have time, but hopefully someone can
>>> shed
>>> > some light on this.
>>> >
>>> > On Sat, Oct 18, 2014 at 7:14 AM, Ferran Pujol Camins <
>>> > ferranpujolcam...@gmail.com> wrote:
>>> >
>>> > > Could you find what was not working? Is it really an issue with the
>>> build
>>> > > scripts or might be something wrong in my computer?
>>> > > El dia 14/10/2014 17.49, "Ferran Pujol Camins" <
>>> > > ferranpujolcam...@gmail.com> va escriure:
>>> > >
>>> > > The libs missing are:
>>> > >>
>>> > >> *Portaudio*. I didn't rename the asio sdk folder correctly, my bad.
>>> Now
>>> > >> it compiles.
>>> > >>
>>> > >> *Chromprint*. Error:
>>> > >>
>>> > >> "C:\Development\buildserver\build\chromaprint-1.1\chromaprint.sln"
>>> > >>> (chromaprint:Clean;chromaprint:Rebuild target) (1) -
>>> > >>> >
>>> > >>>
>>> "C:\Development\buildserver\build\chromaprint-1.1\src\chromaprint.vcxproj"
>>> > >>> (Rebuild target) (2:2) ->
>>> > >>> (CustomBuild target) ->
>>> > >>>   CUSTOMBUILD : CMake error : The source directory
>>> > >>> "C:/mixxx/environments/prototype/build/chromaprint-1.1" does not
>>> app
>>> > >>> ear to contain CMakeLists.txt.
>>> > >>>
>>> [C:\Development\buildserver\build\chromaprint-1.1\src\chromaprint.vcxproj]
>>> > >>>
>>> > >>
>>> > >>
>>> > >> *Taglib*. Error:
>>> > >>
>>> > >> "C:\Development\buildserver\build\taglib-1.9.1\taglib.sln"
>>> > >>> (tag:Clean;tag:Rebuild target) (1) ->
>>> > >>> "C:\Development\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj"
>>> > >>> (Rebuild target) (2:2) ->
>>> > >>> (CustomBuild target) ->
>>> > >>>   CUSTOMBUILD : CMake error : The source directory
>>> > >>> "C:/mixxx/environments/prototype/build/taglib-1.9.1" does not
>>> appear
>>> > >>>  to contain CMakeLists.txt.
>>> > >>> [C:\Development\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>>> > >>>
>>> > >>
>>> > >> 2014-10-13 20:43 GMT+02:00 Max Linke <max_li...@gmx.de>:
>>> > >>
>>> > >>> Some of the dependencies weren't build. I can't see the files for
>>> > >>> chromaprint
>>> > >>> and portaudio in your lib folder.
>>> > >>>
>>> > >>> Can you install cmake and then test to build only these
>>> dependencies?
>>> > >>> Just
>>> > >>> comment out all the other deps in `build_environment.bat`. I had
>>> similar
>>> > >>> issues
>>> > >>> when I tried the new build. I think some of the solutions have to
>>> be
>>> > >>> updated by
>>> > >>> cmake but I'm not 100% that this was the error
>>> > >>>
>>> > >>>
>>> > >>> What are the dependencies that scons is complaining about. The
>>> config
>>> > >>> log helps
>>> > >>> but is a noisy.
>>> > >>>
>>> > >>> best Max
>>> > >>>
>>> > >>>
>>> > >>> On Mon, 13 Oct 2014 20:25:59 +0200
>>> > >>> Ferran Pujol Camins <ferranpujolcam...@gmail.com> wrote:
>>> > >>>
>>> > >>> > I've reverted back WINLIB_PATH to the correct value. I've tried
>>> to
>>> > >>> compile
>>> > >>> > mixxx again:
>>> > >>> >
>>> > >>> > 2014-10-13 10:00 GMT+02:00 Max Linke <max_li...@gmx.de>:
>>> > >>> >
>>> > >>> > > Thanks for the Feedback
>>> > >>> > >
>>> > >>> > > On Sun, 12 Oct 2014 19:59:58 +0200
>>> > >>> > > Ferran Pujol Camins <ferranpujolcam...@gmail.com> wrote:
>>> > >>> > >
>>> > >>> > > > Well, I still cannot build Mixxx correctly.
>>> > >>> > > > In the build.bat suggested. I found an error (I think):
>>> > >>> > > > -When calling scons, It should be* winlib=%WINLIB_PATH%\lib*
>>> > >>> instead
>>> > >>> > > > of *winlib=%WINLIB_PATH%
>>> > >>> > >
>>> > >>> > > No the winlib path is correct. You have to point it to a
>>> directory
>>> > >>> that
>>> > >>> > > contains
>>> > >>> > > the compiled shared libraries AND the headers that we include.
>>> The
>>> > >>> > > libraries are
>>> > >>> > > in the 'lib' folder and the headers in the 'include'.
>>> > >>> > >
>>> > >>> > >
>>> > >>> > > > *isn't it?
>>> > >>> > > >
>>> > >>> > > > I've tried that fix but I still have unmet dependencies. See
>>> > >>> attached
>>> > >>> > > > config.log
>>> > >>> > >
>>> > >>> > > Can you post the content of %WINLIB_PATH%/lib, where your
>>> > >>> %WINLIB_PATH% is
>>> > >>> > > and
>>> > >>> > > the script that you use to build mixxx.
>>> > >>> > >
>>> > >>> > > best Max
>>> > >>> > >
>>> > >>> > > >
>>> > >>> > > > 2014-09-24 19:41 GMT+02:00 Max Linke <max_li...@gmx.de>:
>>> > >>> > > >
>>> > >>> > > > > Hi
>>> > >>> > > > >
>>> > >>> > > > > We have recently updated our windows build environment on
>>> our
>>> > >>> build
>>> > >>> > > server.
>>> > >>> > > > >
>>> https://github.com/mixxxdj/buildserver/tree/windows_environment
>>> > >>> > > > >
>>> > >>> > > > > Today I have updated our build instructions for windows as
>>> well.
>>> > >>> > > > > http://www.mixxx.org/wiki/doku.php/compiling_on_windows
>>> > >>> > > > >
>>> > >>> > > > > If you had problems recently to compile on windows give it
>>> a
>>> > >>> shoot.
>>> > >>> > > > > Any comments about problems are appreciated.
>>> > >>> > > > >
>>> > >>> > > > > Best Max
>>> > >>> > > > >
>>> > >>> > > > >
>>> > >>> > > > >
>>> > >>> > >
>>> > >>>
>>> ------------------------------------------------------------------------------
>>> > >>> > > > > Meet PCI DSS 3.0 Compliance Requirements with EventLog
>>> Analyzer
>>> > >>> > > > > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box
>>> PCI DSS
>>> > >>> > > Reports
>>> > >>> > > > > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download
>>> White
>>> > >>> paper
>>> > >>> > > > > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog
>>> > >>> Analyzer
>>> > >>> > > > >
>>> > >>> > > > >
>>> > >>> > >
>>> > >>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>> > >>> > > > > _______________________________________________
>>> > >>> > > > > Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>> > >>> > > > > http://mixxx.org
>>> > >>> > > > >
>>> > >>> > > > >
>>> > >>> > > > > Mixxx-devel mailing list
>>> > >>> > > > > Mixxx-devel@lists.sourceforge.net
>>> > >>> > > > > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>> > >>> > > > >
>>> > >>> > > >
>>> > >>> > > >
>>> > >>> > > >
>>> > >>> > >
>>> > >>> > >
>>> > >>> > >
>>> > >>>
>>> ------------------------------------------------------------------------------
>>> > >>> > > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>>> > >>> > > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI
>>> DSS
>>> > >>> Reports
>>> > >>> > > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White
>>> paper
>>> > >>> > > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog
>>> Analyzer
>>> > >>> > > http://p.sf.net/sfu/Zoho
>>> > >>> > > _______________________________________________
>>> > >>> > > Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>> > >>> > > http://mixxx.org
>>> > >>> > >
>>> > >>> > >
>>> > >>> > > Mixxx-devel mailing list
>>> > >>> > > Mixxx-devel@lists.sourceforge.net
>>> > >>> > > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>> > >>> > >
>>> > >>> >
>>> > >>> >
>>> > >>> >
>>> > >>>
>>> > >>
>>> > >>
>>> > >>
>>> > >> --
>>> > >> Ferran Pujol Camins
>>> > >>
>>> > >
>>> > >
>>> > >
>>> ------------------------------------------------------------------------------
>>> > > Comprehensive Server Monitoring with Site24x7.
>>> > > Monitor 10 servers for $9/Month.
>>> > > Get alerted through email, SMS, voice calls or mobile push
>>> notifications.
>>> > > Take corrective actions from your mobile device.
>>> > > http://p.sf.net/sfu/Zoho
>>> > > _______________________________________________
>>> > > Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>> > > http://mixxx.org
>>> > >
>>> > >
>>> > > Mixxx-devel mailing list
>>> > > Mixxx-devel@lists.sourceforge.net
>>> > > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>> > >
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> _______________________________________________
>>> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>> http://mixxx.org
>>>
>>>
>>> Mixxx-devel mailing list
>>> Mixxx-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>
>>
>>
>
------------------------------------------------------------------------------
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to