Menu

Building on Windows

2013-10-16
2014-01-23
1 2 > >> (Page 1 of 2)
  • Joep Admiraal

    Joep Admiraal - 2013-10-16

    I am trying to build the current version (checkout from original master) of QLC+ on Windows 7 32bit.
    I installed these components:
    - QT5.1.1-mingw
    - mingw 4.8.1
    - fftw3-3.3.3-1-mingw32-dev
    - glib_2.24.0-2_win32
    - pkg-config_0.26-1_win32

    In powershell I go to c:\qlcplus and run qmake and mingw32-make.
    I get the following result:

    PS C:\qlcplus> mingw32-make.exe
    cd hotplugmonitor\ && ( if not exist Makefile C:\Qt\Qt5.1.1\5.1.1\mingw48_32\bin\qmake.exe C:\qlcplus\hotplugmonitor\hot
    plugmonitor.pro -o Makefile ) && C:/MinGW/bin/mingw32-make -f Makefile
    mingw32-make[1]: Entering directory 'C:/qlcplus/hotplugmonitor'
    test wordt niet herkend als een interne of externe opdracht, programma of batchbestand.
    De syntaxis van de opdracht is onjuist.
    Makefile:39: recipe for target 'sub-src-make_first' failed
    mingw32-make[1]: *** [sub-src-make_first] Error 1
    mingw32-make[1]: Leaving directory 'C:/qlcplus/hotplugmonitor'
    Makefile:50: recipe for target 'sub-hotplugmonitor-make_first-ordered' failed
    mingw32-make: *** [sub-hotplugmonitor-make_first-ordered] Error 2

    It seems it is expecting a program or batch file called test and it does not exist.
    Do you have any idea what the problem can be?

    Thanks,
    Joep

     

    Last edit: Joep Admiraal 2013-10-16
  • Massimo Callegari

    ...like if I speak dutch... :)

    Anyway, as stated in the QLC+ wiki: https://github.com/mcallegari/qlcplus/wiki
    "Note: QLC+ hasn't been ported to Qt 5.x yet. So let's stick with Qt 4.8.5 for now !"

     
  • Joep Admiraal

    Joep Admiraal - 2013-10-17

    Well, I noticed this commit:
    da8ea7a845b4e8e6a0329f066b2bc733702e83db HUGE one - QLC+ ported to Qt5 !

    So I thought lets give it a try.
    I did this in a virtual machine so can easily switch back to my Qt4 machine for now.

     
  • Massimo Callegari

    It's not official and it's not tested on Windows.
    I just built it and launched it on Linux.

    Have you ever compiled QLC+ on Windows ? (with Qt 4.8.x)
    I assure you it's a pain in the ass

     
  • Joep Admiraal

    Joep Admiraal - 2013-10-17

    Yeah I tried with 4.8 and ran into trouble before.
    I will do a clean setup tonight (as described in the wiki).
    I want to test my changes for the sysex messages on Windows :-)

     
  • Massimo Callegari

    I see. If you want I can help. I've got a working environment at home.
    The only thing is that I don't know how to monitor sysex on Windows
    I can try with this: http://www.midiox.com/

     
  • Joep Admiraal

    Joep Admiraal - 2013-10-20

    Ok, I did another test on a new VM. I used a QLC+ revision from just before the Qt5 commit. I followed the instructions from the wiki.
    I used the same software as stated in my first post except for Qt which is now 4.8.5.
    One thing I noticed is that the Qt installation complains about W32API3.13 because MinGW has a newer version of this file.

    Now when running qmake and make from powershell I get this error:
    ./debug\avolitesd4parser.o:avolitesd4parser.cpp:(.eh_frame$_ZN7QStringaSEPKc+0x13): undefined reference to `__gxx_person
    ality_v0'

    I attached a more complete error log.
    Googling this error shows similar errors when gcc is used when g++ should have been used. I doubt that this is the case since the logs show g++ is used.

    Any ideas?
    Thanks

     
  • Massimo Callegari

    Did you forget to install g++ when you installed MinGW ?
    What does g++ -v say ?

    EDIT: By the way, the changes to work on Qt5 are backward compatible. QLC+ still compiles on Qt 4.8.x

     

    Last edit: Massimo Callegari 2013-10-21
  • Joep Admiraal

    Joep Admiraal - 2013-10-21

    g++ is installed with MinGW.
    g++ -v output:

    PS C:\qlcplus> g++ -v
    Using built-in specs.
    COLLECT_GCC=C:\MinGW\bin\g++.exe
    COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
    Target: mingw32
    Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=mingw32 --without-pic --enable-shared --e
    nable-static --with-gnu-ld --enable-lto --enable-libssp --disable-multilib --enable-languages=c,c++,fortran,objc,obj-c++
    ,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific
    -runtime-libs --with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --
    with-mpfr= --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp --enable-threads --with-libiconv
    -prefix=/mingw32 --with-libintl-prefix=/mingw --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
    Thread model: win32
    gcc version 4.8.1 (GCC)

     
  • Massimo Callegari

    Hmmm...GCC 4.8 might be problematic...although I had reports of users compiling with it on Linux.
    I use Windows 7 64bit and mingw 32 bit on GCC 4.6.
    I can try your same steps one of this nights but I'm not sure if I have enough time (also, spending time on Windows makes me nervous... :) )

     
  • Massimo Callegari

    By the way, have you set the environment variables like PATH, QTDIR and so on?
    I remember I got a hell of time on that

     
  • Joep Admiraal

    Joep Admiraal - 2013-10-21

    Yes environment vars are in place.I noticed that the package gcc-v3-g++ was also installed. So I removed the normal g++ package and tried to compile with the v3 version. That did not work. Then I compiled with only the normal g++ package in place and that did work.It then complained about openssl but once that was installed make completed without errors.I will do some more tests and then update the wiki.

     
    • Massimo Callegari

      Just a tiny note on openssl. I guess you found that issue building the webaccess module. It is not needed and yesterday I pushed a little fix on the mongoose flags.

      Honestly I've never heard about v3 and non v3 g++ package. Before updating the wiki, please let me double check the procedure.

      Thanks

       
  • Joep Admiraal

    Joep Admiraal - 2013-10-22

    I did make install and renamed the .a files to .dll files.
    Now when I try to strart qlcplus.exe I get an appcrash:

    Cannot start the application (0xc0000005).

    Signature:
    P1: qlcplus.exe
    P2: 0.0.0.0
    P3: 52663c2b
    P4: QtCored4.dll
    P5: 4.8.5.0
    P6: 51cc9cc0
    P7: c0000005
    P8: 001e1b7c
    P9:
    P10:

    It generates a crashdump file, but before I start analysing that, do you have any idea what this could be?

     
  • Massimo Callegari

    Windows is terrible when it comes to debug something. I see what you see: a crash somewhere into QtCore :(

    Did you launch it from a terminal or double clicked from windows explorer ?
    Have you copied the additional DLLs needed for audio and OSC ?
    Obviously it all depends if you built them in or not

     
  • Massimo Callegari

    A quick summary. I've spent 2 hours on Windows and I got...nowhere !
    I saved my previous mingw installation and I tried to rebuild it from scratch with the new installer.
    First, they changed it all. Now it's fully graphic. Might be better or not.
    After downloading all the base system, I opened a powershell and the command "make" does absolutely nothing. (gcc and g++ work ok)

    So I opened a MSYS shell and got a little bit further. Although I got stuck again, cause for some reason qlcconfig.h doesn't exist.
    It is supposed to be created by qmake.

    I can spend some more time, maybe tomorrow, but this is indeed a problem. :(

     
  • Joep Admiraal

    Joep Admiraal - 2013-10-23

    I am able to compile QLC (without the plugins, except for midi).
    If you have other (more important) things to work on, please do so.
    For me this is not a high priority issue, and eventually I will find the cause of this problem. When I got it running I will update the wiki.

     
  • Massimo Callegari

    I've been able to understand the issue of compiling with MSYS shell. It's more UNIX style.
    After building the whole QLC+ I got your same result: error 0xc0000005.
    Gonna investigate this later.

     
  • Massimo Callegari

    I fear this is it: https://qt-project.org/forums/viewthread/21853/
    Means latest MinGW is not binary compatible with Qt 4.8.5.

     
    • Joep Admiraal

      Joep Admiraal - 2013-10-29

      Ah great you found the problem.
      I tried MinGW 4.4 and it works.

      Thanks for looking into this.

       
  • Robert Scheffler

    Hello gentlemen,

    Hate to drag this back up, but for us "newbies" it is a stumbling block:

    The Wiki for building QLC+ on windows has a MinGW link to the new graphical installer, getting me a very new MinGW, not 4.4.

    Question: was the Qt 4.8.5 vs 5.2.0 resolved? Or is 4.8.5 the answer.
    Question: if using Qt Libs 4.8.5, is QtCreator 3.0.0 ok?
    Question: was MinGW 4.4 vs newer version resolved?
    Question: gcc 4.8.1 vs 4.6.x resolved?

    Massimo,
    Seems the last comment here from you was you would check the Wiki and verify the updated process for us windows guys.
    I gather that you are not a windows fan (to put it mildly)... Any chance you could help update the "how-to for dummies" so guys like me can get started?

    If there is another thread with the new procedure, happy to receive a link to it!

    Any help is most appreciated,

    Bob

     
    • Massimo Callegari

      Hello Bob. Building on Windows is definitely not for newbies. Sorry.
      Not actually my fault, but a thousand issues arise when trying to compile open source softwares with an open source compiler (mingw) in a non-open source platform.
      To put it mildly, I think Microsoft does its best to keep open source away from windows. You might succeed, but they make your life very hard.

      The answers of your questions are above except for one: you can use Qt Creator with any Qt version.
      Unfortunately there is nothing I can do about binaries incompatibility. Qt 4.8.x was built with GCC 4.4, so it's already a miracle it works with GCC 4.6.
      You can use GCC 4.8.x with Qt 5.x.

      Unless.....you want to build Qt 4.8.5 from sources with GCC 4.8 yourself. Good luck with that ! :)
      I haven't updated the wiki cause Qt 4.8.5 is good enough for windows at the moment. Building on Qt 5 is even more difficult and I don't recommend it to anyone.

      By the way, may I ask why you want to build QLC+ on Windows ? If you're not happy please report what you found.
      If you want to contribute, I strongly recommend to work on Linux.

       
  • Robert Scheffler

    A footnote:
    My desire is to develop/debug using the QtCreator IDE.

    Bob

     
    • Massimo Callegari

      Now my footnote :)
      I'm quite sure that if you use Visual Studio your life will be much easier.
      There are prebuilt version of Qt to be used with VS.

      I didn't support the idea since the beginning, as I didn't want to fall into the Microsoft trap of using their development suite.
      I knew I had to spit blood to use MinGW, but in the end I made it :)

       
  • Robert Scheffler

    Massimo,

    I am hoping that like most development environments, this is just a matter of getting it setup. Once past that, I could get to working on code, and not spending too much time working the 'environment'. Fortunately, I don't need to work on other projects, so I don't really care about what MinGW version, or Qt version is used.

    I use QLC+ is a theater environment, not really DJ use. My brain works like a theater lighting guy, so there are several things I would like to contribute in that regard.

    I have played with every DMX software package I can find, well about 8 of them, including Venue Magic. QLC+ is 99%+ of what I have always wanted. Just want a few things to be more the way my brain thinks. I would like to contribute all of that back to the group.

    There are several 'querky' things in operation that could be a Windows thing. Since I operate in a Windows environment, my belief is that I should develop in a Windows environment.

    I have ample supply of Windows machines due to my day jobs, so to have a 'one off' machine just for this would be a pain.

    As for bugs and issues besides the 'querky' ones above, I will let you smarter guys fix those as I run into them. I do have a list, but building the active repository before I complain about bugs is my intention.

    Now in a twist of fate, one church where I installed 48 dimmers plus 18 RGB pars, and 4 moving heads, is running QLC+ on a iMAC. They use ArtNet output to one of my boards.

    I am a QLC+ and GitHub newbie, but not a software development newbie...
    (btw, no interest in building Qt from sources! I will beg for mercy before I try that!)

    Just wanted to ask about the versions before I take the plunge. Didn't want you to come back later and say "why didn't you ask?" I'll go ahead and muddle through it.

    Thanks for the advice.

    Bob

     
1 2 > >> (Page 1 of 2)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.