[SOLVED] Errors building x64 SDK with Intel Compiler



  • Hi,

    I need to build an x64 version of Creator so I can get my debugger working!

    This is the configuration file I am using:

    -debug-and-release -shared -static -platform win32-icc -nomake examples -nomake demos -no-qt3support -no-webkit
    -no-phonon -qt-style-windowsvista -no-style-cde -no-style-cleanlooks -no-style-plastique -no-style-s60 -no-style-motif
    -no-style-windowsmobile -no-style-windowsce -qt-sql-odbc -declarative -ltcg -no-opengl -no-openvg -graphicssystem raster
    -no-libmng -no-libtiff -no-dsp -no-vcproj -incredibuild-xge -arch windows -opensource -saveconfig x64

    My build environment is :

    Windows 7 Ultimate x64 (SP 1)
    Qt SDK v4.7.2
    Qt Creator v2.1.0 source
    Intel Compiler v12.0.0.2

    However while trying to compile the SDK to get the required .DLLs it fails with the following error so I would appreciate your help on this.
    @
    output removed.
    ...
    -I"..3rdpartyjavascriptcoreJavaScriptCoregenerated" -I"." -I"parser" -I"....includeActiveQt" -I"tmpmocdebug_static" -I"....mkspecswin32-icc" -Foobjdebug @C:UserswilliamAppDataLocalTempnm478D.tmp
    JSBase.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    JSCallbackConstructor.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    JSCallbackFunction.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    JSCallbackObject.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    JSClassRef.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    JSContextRef.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    JSObjectRef.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    JSValueRef.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    ^

    OpaqueJSString.cpp
    C:Qt4.7.2src3rdpartyjavascriptcoreJavaScriptCoreruntimeStructure.h(320): error: taking the address of a bit field is not allowed
    add(std::make_pair(RefPtrUString::Rep(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious);
    @

    --
    Thanks,

    William


  • Moderators

    Do I understand the dump correctly in that you are building Qt, not Qt Creator?

    I think Qt Creator does use WebKit, so disabling that is not the best idea. I am further surprised that -nomake works on windows... I thought it did not.



  • Hello Tobias,

    Thank you for the reply and yes you are assuming correctly this output is from an SDK build so I can get the required .dll and .lib files needed to build a 64 bit Creator. I will re-run it with webkit enabled and post back.

    Is there a way to build individual libraries?

    Your comment about -nomake, I was unaware that this failed on Windows but I can see from the directory timestamps that you are correct. Here's me thinking I was saving time without it!

    --



  • Well I have re-ran configure with the -no-webkit removed from the config file and re-built but I still get the same errors as originally described.

    I am downloading the latest version of the Intel C++ Composer XE just now so once this is installed I will (yet again) do a complete re-configure / build.



  • OK, this error is now fixed having upgraded to the latest Intel Compiler (12.0.3.175), and for what it's worth build took 48 minutes using jom and 4 cores.

    Now off to see if I can get a 64 bit build of Creator done.


Log in to reply
 

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