Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. [partly solved] Errors in cross compilation with Windows EA 7

[partly solved] Errors in cross compilation with Windows EA 7

Scheduled Pinned Locked Moved Installation and Deployment
26 Posts 4 Posters 14.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    joergs1968
    wrote on 10 May 2011, 09:49 last edited by
    #5

    I meanwhile installed gperf.exe on the compile-host and updated the PATH accordingly so the system should be able to find GPERF.EXE - but I am still getting this error described above!?

    Is this because gperf.exe didn't exist at the time configure was executed and I must do the whole configuration / compilation to this point again? (this takes a LOT of time ...)

    btw: the configuration is:
    configure.exe -release -opensource -shared -ltcg -no-fast -exceptions -no-accessibility -stl
    -opengl es2 -openvg -platform win32-msvc2008 -xplatform wince70embedded-armv7-msvc2008
    -graphicssystem opengl -no-crt

    1 Reply Last reply
    0
    • K Offline
      K Offline
      koahnig
      wrote on 10 May 2011, 10:36 last edited by
      #6

      I am not sure, but I think you hooked to the wrong indication for your problem.

      There is a gperf.exe, which you have installed. But it does not look that this is the cause of your error. At least not in your initial post.
      [quote author="joergs1968" date="1304964371"]... but it stopped at linking QtXmlPatterns4.dll with following strange error:

      d:\qt-everywhere-opensource-src-4.7.3\src\xmlpatterns\tokenlookup.gperf(166) : fatal error C1083: Cannot open source file: 'd:\qt-everywhere-opensource-src-4.7.3\src\xmlpatterns\tokenlookup.gperf': No such file or directory

      I believe this is because there is no 'gperf.exe' program available on that platform...
      -are there any other such "hidden" dependencies to other GNU binaries?
      [/quote]

      Apparently, the compiler is looking for a file "tokenlookup.gperf" in directory "...\xmlpatterns".
      The error code (C1083) shown is from the MS compiler, if I am not completely wrong. The compiler is trying to include a file, which is not existent.
      However, the file is in a subdirectory "parser".
      [quote author="koahnig" date="1305012196"]
      The file you are mentioning above is not in the directory ".../xmlpatterns" but in a subdirectory ".../xmlpatterns/parser".
      I guess that the problem is not that your system does not have an exe. It is probably more a configuration error.
      [/quote]

      BTW To my experience it is always good to redo the configure step. There must be a reason why the "make confclean" command is suggested.

      Vote the answer(s) that helped you to solve your issue(s)

      1 Reply Last reply
      0
      • J Offline
        J Offline
        joergs1968
        wrote on 10 May 2011, 11:38 last edited by
        #7

        [EDIT: merged this question from a separate thread here, Volker]

        I configured QT 4.7.3 to do a cross-compilation to the new Windows EA 7 (embedded automotive) --which is the successor of MS Auto-- as follows:
        configure.exe -release -opensource -shared -ltcg -no-fast -exceptions -no-accessibility -stl -opengl es2 -openvg -platform win32-msvc2008 -xplatform wince70embedded-armv7-msvc2008 -graphicssystem opengl -no-crt
        (the target system is a cortex-A8 based SoC with an integrated ATI grafix core providing H/W accelerated OpenGL ES 2.0 and OpenVG).
        I got only few problems in the beginning, mainly because unavailable functions/types/definitions that were stubbed for WinCE6 are available now and thus those stubs need to be removed plus a few issues with gesture recognition, but nothing serious ...
        But now I'm stuck at a weird one:
        Creating library ....\lib\QtXmlPatterns4.lib and object ....\lib\QtXmlPatterns4.exp
        Generating code
        d:\qt-everywhere-opensource-src-4.7.3\src\xmlpatterns\tokenlookup.gperf(166) : fatal error C1083: Cannot open source file: 'd:\qt-everywhere-opensource-src-4.7.3\src\xmlpatterns\tokenlookup.gperf': No such file or directory
        LINK : fatal error LNK1257: code generation failed
        NMAKE : fatal error U1077: 'D:\WINCE\sdk\bin\i386\ARM\link.EXE' : return code '0x4e9'

        this 'tokenlookup.gperf' is located in a different directory than the above: it's not in ...\xmlpatterns but in ...\xmlpatterns\parser

        • probably that's why the build breaks here!?

        I didn't had gperf.exe installed at the time when configure was executed, now I have it installed and the build process should be able to find it... (but I didn't run configure again if that matters, only updated the PATH env-var)

        Don't know what to do to get this fixed, any help much appreciated!

        1 Reply Last reply
        0
        • J Offline
          J Offline
          joergs1968
          wrote on 10 May 2011, 14:04 last edited by
          #8

          ...well, I started this second thread because this was advised by the first reply above...

          anyways: I'm gonna do a clean configure again now that 'gperf' is awailable and my WinEA7 qmake.conf more-or-less stable and post here if this solves the described problem!

          'til later...

          1 Reply Last reply
          0
          • G Offline
            G Offline
            goetz
            wrote on 10 May 2011, 14:25 last edited by
            #9

            I talked to some fellow moderators, and we all agreed to merge :-)

            Instead of a new post, one can always edit the subject (title) of a thread and - if necessary - ask the moderators to move it to another forum.

            Good luck with your re-compilation, I'm crossing fingers...

            http://www.catb.org/~esr/faqs/smart-questions.html

            1 Reply Last reply
            0
            • J Offline
              J Offline
              joergs1968
              wrote on 10 May 2011, 15:59 last edited by
              #10

              no prob about the merge!

              didn't went much further :-(
              initially I got the same error, but I got around that by manually copying this TokenLookup.gperf in its parent directory...
              now I'm stuck at the bison file (qquerytransformparser.cpp) - btw. I also need to install bison for windows...

              qquerytransformparser.cpp
              d:\qt-everywhere-opensource-src-4.7.3\src\xmlpatterns\qquerytransformparser.cpp(3364) : warning C4065: switch statement contains 'default'
              but no 'case' labels
              d:\qt-everywhere-opensource-src-4.7.3\src\xmlpatterns\qquerytransformparser.cpp(3142) : fatal error C1083: Cannot open source file: 'd:\qt-everywhere-opensource-src-4.7.3\src\xmlpatterns\qquerytransformparser.cpp': No such file or directory
              NMAKE : fatal error U1077: 'D:\WINCE\sdk\bin\i386\ARM\cl.EXE' : return code '0x1'

              very strange: it seems at the beginning that this file actually is present in that directory, but later it got deleted
              -- could this be because the WinEA7 compiler extensively uses parallel compilation?
              e.g. that in a sequential build this would work (1. generate the gerf/bison files, 2. compile those files, 3. delete the generated files) but the parallel building mixes up this sequence so the generated files are deleted prior being fully compiled?
              -- just a thought...

              (where are the makefile rules that instruct nmake/qmake to delete those generated files? so I can test this theory by commenting out those rules...)

              1 Reply Last reply
              0
              • K Offline
                K Offline
                koahnig
                wrote on 10 May 2011, 16:03 last edited by
                #11

                @Volker
                Sorry, I was not aware of how to get in touch with one of the moderators.
                The intend was to draw someone else's attention to the discussion. Hope there has been some input to help joergs1968.
                I guess a new configure may help, but otherwise I do not know how to continue.

                Vote the answer(s) that helped you to solve your issue(s)

                1 Reply Last reply
                0
                • K Offline
                  K Offline
                  koahnig
                  wrote on 11 May 2011, 09:41 last edited by
                  #12

                  [quote author="joergs1968" date="1305043186"]
                  very strange: it seems at the beginning that this file actually is present in that directory, but later it got deleted
                  -- could this be because the WinEA7 compiler extensively uses parallel compilation?
                  e.g. that in a sequential build this would work (1. generate the gerf/bison files, 2. compile those files, 3. delete the generated files) but the parallel building mixes up this sequence so the generated files are deleted prior being fully compiled?
                  -- just a thought...

                  (where are the makefile rules that instruct nmake/qmake to delete those generated files? so I can test this theory by commenting out those rules...)[/quote]

                  In general I would recommend to change as few as possible. Messing around with the make file rules does not sound very practical. Requiring additional installation of tools does not really like Qt. Certainly a couple of things have to be present, but what you are describing sounds strange.

                  You could be right that the parallel building could have some side effects. Typically I am not patient myself. Therefore, I am using extensively the parallel compilation options. However, it is probably a good choice to try it with the sequencial before investing weeks for chasing "ghosts".

                  However, if you start to do so, take a fresh copy of Qt and start with the configure.

                  Vote the answer(s) that helped you to solve your issue(s)

                  1 Reply Last reply
                  0
                  • J Offline
                    J Offline
                    joergs1968
                    wrote on 11 May 2011, 12:08 last edited by
                    #13

                    I haven't messed with any makefile rules yet - I wanted to only modify those rules that delete the generated files after compilation, for pure diagnosis purposes only, that's all...

                    If the compilation had worked without that, I didn't need any of this!

                    It does not seem as if I could instruct the WinEA7 compiler to not use parallel compilation at all, so I cannot go the sequential way :-(
                    [ actually --according to "cl /?"-- there is an option "/MP[n] use up to 'n' processes for compilation" designed for this purpose (e.g. /MP1) -- but this doesn't seem to work, cl always complains "cl : Command line warning D9002 : ignoring unknown option '/MP'" ]

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      koahnig
                      wrote on 11 May 2011, 12:44 last edited by
                      #14

                      Sorry, I did not mean to offend you with using the words "messing around".

                      Concerning your problem I am at the end of my suggestions. We need to get involvement of Qt gurus. May be this is a general problem of Qt with a brand new compiler.

                      Vote the answer(s) that helped you to solve your issue(s)

                      1 Reply Last reply
                      0
                      • J Offline
                        J Offline
                        joergs1968
                        wrote on 11 May 2011, 13:41 last edited by
                        #15

                        no offence taken, don't worry...


                        I got this solved/work-a-rounded: I manually invoked bison to create that qquerytransformparser.cpp from the querytransformparser.ypp input which seems to have worked finally - at least I do have a "QtXmlPatterns4.dll" now :-D

                        My luck doesn't lasted for long though - now I am stuck at:
                        src\3rdparty\javascriptcore\javascriptcore\wtf\platform.h(320) : fatal error C1189: #error : "Not supported ARM architecture"

                        should not be too hard to fix since ARMV7 is downward-compatible to ARMV4i, but don't know what about mixing different architectures...

                        [update]
                        since the manual compilation seems to work, it's most obviously a qmake bug, so I changed the title...

                        1 Reply Last reply
                        0
                        • K Offline
                          K Offline
                          koahnig
                          wrote on 11 May 2011, 13:49 last edited by
                          #16

                          we are certainly at a point beyond the limits of my knowledge. We need to get Qt compilation experts involved. I have written an email to one of the moderators. This was about 15 minutes ago.

                          Vote the answer(s) that helped you to solve your issue(s)

                          1 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            troubalex
                            wrote on 12 May 2011, 12:10 last edited by
                            #17

                            I passed it on to the experts. Hopefully, someone will find the time to look into it.

                            THE CAKE IS A LIE
                            Web Community Manager - Qt Development Frameworks

                            1 Reply Last reply
                            0
                            • K Offline
                              K Offline
                              koahnig
                              wrote on 12 May 2011, 12:58 last edited by
                              #18

                              @Alexandra Thanks for your assistance.

                              Vote the answer(s) that helped you to solve your issue(s)

                              1 Reply Last reply
                              0
                              • J Offline
                                J Offline
                                joergs1968
                                wrote on 12 May 2011, 14:26 last edited by
                                #19

                                OK - thanks for that!

                                I am currently dealing with some minor issues inside javascriptcore - basically because there is no min()/max() defined in the std-namespace in WINEA7; plus: I had the wrong INCLUDEPATH order, so the compiler took the system's profile.h instead of the one provided in the javascript/profiler directory...

                                nothing serious, I'm makeing progress...
                                (only takes its time - because of the latter, I need a fresh re-configure...)

                                [update]
                                ok - I got some new errors about undeclared/undefined "rel_ops" in some *.moc files, don't know what do do now, help anybody?

                                ThreadingQt.cpp
                                ...src\script\tmp\moc\release_shared\threadingqt.moc(43) : error C2653: 'rel_ops' : is not a class or namespace name

                                (btw: I did a confclean followed by "configure -release -opensource -shared -no-fast -exceptions -rtti -no-stl -no-accessibility -opengl es2 -openvg -platform win32-msvc2008 -xplatform wince70embedded-armv7-msvc2008 -graphicssystem opengl -ltcg -qt-style-windowsce -qt-style-windowsmobile -arch windowsce -no-native-gestures")

                                1 Reply Last reply
                                0
                                • J Offline
                                  J Offline
                                  joergs1968
                                  wrote on 13 May 2011, 11:10 last edited by
                                  #20

                                  what is this "rel_ops" error all about??

                                  this seems to be something like a namespace identifier, but where is this comming from? why does moc.exe adds this, as this seems wrong here? - there is no such namespace existing in my compiler environment...

                                  any help, please!

                                  1 Reply Last reply
                                  0
                                  • J Offline
                                    J Offline
                                    joergs1968
                                    wrote on 13 May 2011, 16:31 last edited by
                                    #21

                                    I at least found the reason, why the build breaks for the (pre-)generated sources:

                                    The WinCE Compiler has a strange behaviour regarding those "#line" statements which are included in the pre-generated sources and which refer to the source of the generated files:
                                    it appears that when compiling the generated files, the filename as referred to by the #line directive, actually has to be present at that location, otherwise the build fails...
                                    (it's sufficient to be a 0-size file with exactly that name at the referred position, but it must exist)

                                    that's not even a new feature/bug introduced into WinEA7, WinCE6.00 (at least the MS-Auto variant) behaves exactly the same...

                                    --> title updated!

                                    1 Reply Last reply
                                    0
                                    • K Offline
                                      K Offline
                                      koahnig
                                      wrote on 14 May 2011, 09:16 last edited by
                                      #22

                                      It does not look that there has been any feedback from Qt's experts. At least nobody from Qt besides Alexandra has added something to this thread.
                                      That is a pitty.
                                      I think you should file a bug report.

                                      Vote the answer(s) that helped you to solve your issue(s)

                                      1 Reply Last reply
                                      0
                                      • K Offline
                                        K Offline
                                        koahnig
                                        wrote on 14 May 2011, 09:26 last edited by
                                        #23

                                        I have not prepared a bug report to Qt yet, but have a look to "Contribute ":http://developer.qt.nokia.com/contribute
                                        Apparently, you have entered new ground, but Qt's experts should be interested to understand your issues. Sooner or later thay will face those problems as well.

                                        I am interested in the follow up, so please make sure that some sort of summary is posted, when you get additional help.

                                        Vote the answer(s) that helped you to solve your issue(s)

                                        1 Reply Last reply
                                        0
                                        • J Offline
                                          J Offline
                                          joergs1968
                                          wrote on 16 May 2011, 09:41 last edited by
                                          #24

                                          actually this problem regarding the broken "#line" directive seems more of a MicroSoft issue for MS Auto/Windows embedded automotive - those both do not use the PlatformBuilder for compilation but a pure commandline environment; at least in a normal (i.e. not cross-compile) VisualStudio Project, this works...
                                          I already submitted a bug-report towards MicrosSoft, maybe they'll fix this in an upcomming release.

                                          Actually the contribution of QT developers here is a bit disappointing :-(
                                          -- I have more unsolved issues which I would need assistance for...

                                          1 Reply Last reply
                                          0

                                          14/26

                                          11 May 2011, 12:44

                                          • Login

                                          • Login or register to search.
                                          14 out of 26
                                          • First post
                                            14/26
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved