Is there a way: qt 4.3.4 with Studio 2010?



  • Hello, together

    unfortunately my search efforts did not end with success so I have to ask this question here: Is there a way to get Qt 4.3.4 to run with Visual Studio 2010?

    I already managed to build Qt 4.7.1 under Studio 2010 using the Qt-everywhere-commercial package, so I already know the general direction this question should lead, but of course the steps I used for the new version don't work at all for 4.3.4.

    Before I put huge efforts into an expedition I would like to see if anybody has already done this and whether this could work at all.

    So please enlighten me.

    Drago

    (hope this is the correct forum...)



  • Hi drago60000,

    theoretically it should work. What will definitly miss is the mkspecs/win32-msvc2010 which you will have to create (perhaps a copy from 4.7.1 will work???). Then configure and nmake should do the job.



  • Hi, Gerolf

    thanks for your feedback, but I fear it is not that simple. I just tried the very simple approach doing the following.

    1. Downloaded qt-win-opensource-src-4.3.4.zip from ftp.qt.nokia.com/qt/source
      I used this one because the commercial version of 4.3.4 is not available in the customer portal of digia

    2. unpacked the zip in the goal dir

    3. configured environment (QMAKESPEC, Path, QTDIR)

    up to here all is similar to version 4.7.1

    1. copied makespec msvc2010 from 4.7.1 to 4.3.4

    2. started configure

    result:

    Creating qmake...
    execute: File or path is not found (make)
    execute: File or path is not found (make)
    Cleaning qmake failed, return code -1

    Seems that configure looks for a make, but I can only provide nmake.

    I also tried qt-all instead of qt-win but the result is the same. qt-everywhere (which i used for 4.7.1) is not available for 4.3.4, since it starts with 4.6

    So that seems a little more complicated.



  • please compare the content of the mkspec for 2010 with the one you used before (2008? 2005?).
    perhaps you have to adopt it.

    and please try, whether you could configure for 2008 with the same settings, only QMAKESPEC changed.

    please provide your environment (cmd --> set) for all studio / qt realted settings

    your configure call

    perhaps the complete configure output as file on some file hosters and a link to check for other errors that might happen.



  • I think the output of configure is short enough to post it here, because it stops near the start


    @
    D:WorkQt4.3.4_win>configure

    This is the Qt/Windows Open Source Edition.

    You are licensed to use this software under the terms of
    the GNU General Public License (GPL) version 2 or 3.

    Type '2' to view the GNU General Public License version 2 (GPLv2).
    Type '3' to view the GNU General Public License version 3 (GPLv3).
    Type 'y' to accept this license offer.
    Type 'n' to decline this license offer.

    Do you accept the terms of the license?
    y
    Environment:
    INCLUDE=
    C:Program Files (x86)Microsoft Visual Studio 10.0VCINCLUDE
    C:Program Files (x86)Microsoft Visual Studio 10.0VCATLMFCINCLUDE
    C:Program Files (x86)Microsoft SDKsWindowsv7.0Ainclude

    LIB=
      C:Program Files (x86)Microsoft Visual Studio 10.0VCLIB
      C:Program Files (x86)Microsoft Visual Studio 10.0VCATLMFCLIB
      C:Program Files (x86)Microsoft SDKsWindowsv7.0Alib
    
    PATH=
      C:Program Files (x86)Microsoft Visual Studio 10.0VSTSDBDeploy
      C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE
      C:Program Files (x86)Microsoft Visual Studio 10.0VCBIN
      C:Program Files (x86)Microsoft Visual Studio 10.0Common7Tools
      C:WindowsMicrosoft.NETFrameworkv4.0.30319
      C:WindowsMicrosoft.NETFrameworkv3.5
      C:Program Files (x86)Microsoft Visual Studio 10.0VCVCPackages
      C:Program Files (x86)HTML Help Workshop
      C:Program Files (x86)Microsoft Visual Studio 10.0Team ToolsPerformance
    

    Tools
    C:Program Files (x86)Microsoft SDKsWindowsv7.0AbinNETFX 4.0 Tools
    C:Windowssystem32
    C:Windows
    C:WindowsSystem32Wbem
    C:WindowsSystem32WindowsPowerShellv1.0
    C:Program Files (x86)ATI TechnologiesATI.ACECore-Static
    d:workqt4.3.4_winbin
    C:Program Files (x86)Microsoft Visual Studio 10.0VCbin
    C:Program FilesCommon FilesMicrosoft SharedWindows Live
    You are licensed to use this software under the terms of the GNU GPL version 2 o
    r 3.
    See D:/Work/Qt/4.3.4_win/LICENSE.GPL2
    or D:/Work/Qt/4.3.4_win/LICENSE.GPL3

    Configuration:
    minimal-config
    small-config
    medium-config
    large-config
    full-config
    build_all
    debug
    Qt Configuration:
    release
    debug
    zlib
    png
    accessibility
    qt3support
    opengl
    ipv6
    minimal-config
    small-config
    medium-config
    large-config
    full-config

    QMAKESPEC...................win32-msvc2010 (env)
    Architecture................windows
    Maketool....................make
    Debug symbols...............yes
    Accessibility support.......yes
    STL support.................yes
    Exception support...........yes
    RTTI support................yes
    MMX support.................yes
    3DNOW support...............yes
    SSE support.................yes
    SSE2 support................yes
    OpenGL support..............yes
    Direct3D support............no
    OpenSSL support.............no
    QDBus support...............no
    Qt3 compatibility...........yes

    Third Party Libraries:
    ZLIB support............qt
    GIF support.............plugin
    TIFF support............plugin
    JPEG support............plugin
    PNG support.............qt
    MNG support.............plugin

    Styles:
    Windows.................yes
    Windows XP..............yes
    Windows Vista...........yes
    Plastique...............yes
    Cleanlooks..............yes
    Motif...................yes
    CDE.....................yes

    Sql Drivers:
    ODBC....................no
    MySQL...................no
    OCI.....................no
    PostgreSQL..............no
    TDS.....................no
    DB2.....................no
    SQLite..................plugin (qt)
    SQLite2.................no
    InterBase...............no

    Sources are in..............D:WorkQt4.3.4_win
    Build is done in............D:WorkQt4.3.4_win
    Install prefix..............D:WorkQt4.3.4_win
    Headers installed to........D:WorkQt4.3.4_wininclude
    Libraries installed to......D:WorkQt4.3.4_winlib
    Plugins installed to........D:WorkQt4.3.4_winplugins
    Binaries installed to.......D:WorkQt4.3.4_winbin
    Docs installed to...........D:WorkQt4.3.4_windoc
    Data installed to...........D:WorkQt4.3.4_win
    Translations installed to...D:WorkQt4.3.4_wintranslations
    Examples installed to.......D:WorkQt4.3.4_winexamples
    Demos installed to..........D:WorkQt4.3.4_windemos

    Creating qmake...
    execute: File or path is not found (make)
    execute: File or path is not found (make)
    Cleaning qmake failed, return code -1


    Environment

    Path=C:Program Files (x86)Microsoft Visual Studio 10.0VSTSDBDeploy;C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE;C:Program Files (x86)Microsoft Visual Studio 10.0VCBIN;C:Program Files (x86)Microsoft Visual Studio 10.0Common7 Tools;C:WindowsMicrosoft.NETFrameworkv4.0.30319;C:WindowsMicrosoft.NETFrameworkv3.5;C:Program Files (x86)Microsoft Visual Studio 10.0VCVCPackages;C:Program Files (x86)HTML Help Workshop;C:Program Files (x86)Microsoft Visual Studio 10.0Team ToolsPerformance Tools;C:Program Files (x86)Microsoft SDKsWindowsv7.0AbinNETFX 4.0 Tools;C:Program Files (x86)Microsoft SDKsWindowsv7.0Abin;%CommonProgramFiles%Microsoft SharedWindows Live;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)ATI TechnologiesATI.ACECore-Static;d:wo
    rkqt4.3.4_winbin;C:Program Files (x86)Microsoft Visual Studio 10.0VCbin;
    QMAKESPEC=win32-msvc2010
    QTDIR=d:workqt4.3.4_win
    VCINSTALLDIR=C:Program Files (x86)Microsoft Visual Studio 10.0VC
    @

    There are some differences between the mkspecs, but I think the basic question is, why make is used as Maketool (see output) and could it even work with nmake?

    Right now we get to the point I'm trying to avoid. Although I like experiments like this I would really like to know if this (or something similar) has been done before because I am a bit short of time right now and must avoid testing different setups for hours.

    Drago



  • it should use nmake, not make.
    So the point is, why does it use try to use make?

    you could have a look at qmake make files, which are located here:
    d:\work\qt4.3.4_win\qmake\Makefile.win32

    this should be executed. on 4.7.2, there is some special statement at the top, checking the mkspecs. perhaps this also needs to be changed:

    @
    !IF "$(QMAKESPEC)" == "win32-msvc" || "$(QMAKESPEC)" == "win32-msvc.net" || "$(QMAKESPEC)" == "win32-msvc2002" || "$(QMAKESPEC)" == "win32-msvc2003" || "$(QMAKESPEC)" == "win32-msvc2005" || "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-icc"
    @

    perhaps, based on this if, it fails and trys another makefile which uses make instead of nmake. I would give it a try.



  • After some research I found out that the decision between make and nmake is part of the compiled configure.exe. The source code is part of the package and there you see that the decision depends on the name of the makespec. If it ends on msvc2005 (and some others), nmake is chosen, else make. Msvc2008 is not in there of course so it chooses make.

    Probably one could now change the source code and rebuild the configure tool, but it is a Qt application so you need Qt to build it (sigh). Maybe I could have done this with Qt 4.7.x, but I decided to try something else.

    I just configured Qt with the makespec msvc2005. The configuration part then is no problem, even with Studio 2010.

    The next is calling nmake, that also seems no problem except there are messages about missing manifest files. A restart of nmake seems to fix that problem. Every message of this kind stops nmake and cannot be ignored (because it's a fatal error?) with -I so I went the hard way and restarted nmake after each error of this kind (some 30 times...) and finally nmake was done.

    I am not quite sure what my result is now. I have a compiled version 4.3.4. It is able to "unpack" my solution (i.e. build vcproj files from pro files) from command line but it produces some error messages on the way, but those could be a Windows 7 problem because they are environment warnings.

    I have a Studio 2010 with the latest Qt integration version (1.1.8 I think). Trying to open the pro files from there resulted in a message that the Qt version is not supported by this integration version. On the other hand: older integration versions won't do with Studio 2010 so I have now a mixture of versions.

    However: I managed to build my Qt-application (the one I do this experiment for) with some minor problems (environmental). In the debugger I can see the content of e.g. QString, so the integration works at least partly. I did not try to use any other feature of the integration up to now.

    For now I reached my goal at least for the main part. But some questions are still open.

    • Will the "wrong" qmakespec lead to a problem later on?
    • Which parts of the integration will be unusable?
    • Are there known problems generating vcproj files from "old" pro files under Windows 7?
    • What about those manifest errors during the Qt build?

    If somebody has hints for these questions and maybe to the general idea using msvc2005 with studio 2010, I would really like to read it here ;-)

    Drago



  • Hi Gerolf,

    I just set up version 4.5.2 for VS2010 with a little different approach. First I copied the specs from win32-msvs2008 to win32-msvs2010 and modified the file qmake.conf to use the correct _MSC_VER value (1600).

    Then (unfortunately) I had to modify the file makefile.win32 at the folder qmake. At the top I had to add the VS2010 specs, just like you already described.

    Then at the command line I ran configure.exe with at least the option "-make nmake" to be sure that nmake will be used (found the option in the source of configure.exe).
    I even had to set the option "-no-qt3support" for building that part gave me an error and I do not need the Qt3 support.

    After this I configure.exe did run almost correct, only copying qmake.exe failed. Copied this by hand and restarted configure.exe; then it completed normal.

    Finally I could run nmake and build the library.

    hope this helps,
    Mark


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.