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. Tool definition for linux cross-compilation on windows
Forum Updated to NodeBB v4.3 + New Features

Tool definition for linux cross-compilation on windows

Scheduled Pinned Locked Moved Installation and Deployment
36 Posts 5 Posters 14.1k Views 1 Watching
  • 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.
  • K Offline
    K Offline
    koahnig
    wrote on last edited by
    #24

    You are completely right. Even though I had checked it before with other version it was not carried with version 5.2.1.
    I did not use the "call configure.bat" and the three subsequent echos are ignored.

    Sorry my fault.

    It goes further now, but eventually comes up with the next problem.

    @
    arm-uclinuxeabi-g++ -c -pipe -mthumb -march=armv7 -mfix-cortex-m3-ldrd -g -fPIC -std=c++0x -Wall -W -D_REENTRANT -DQT_NO_USING_NAMESPACE -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_
    COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DPCRE_HAVE_CONFIG_H -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I....\mkspecs\linux-arm-uclinuxeabi-g++ -I. -I....\inc
    lude -I....\include\QtCore -I....\include\QtCore\5.2.1 -I....\include\QtCore\5.2.1\QtCore -Iglobal -I..\3rdparty\pcre -I..\3rdparty\harfbuzz\src -I..\3rdparty\md5 -I..\3rdparty\md4 -I..\3rdparty\sha3 -I.moc -o .obj\qwaitconditi
    on_unix.obj thread\qwaitcondition_unix.cpp
    thread\qwaitcondition_unix.cpp: In function 'void qt_initialize_pthread_cond(pthread_cond_t*, const char*)':
    thread\qwaitcondition_unix.cpp:83:61: error: 'pthread_condattr_setclock' was not declared in this scope
    Makefile:13335: recipe for target '.obj\qwaitcondition_unix.obj' failed
    mingw32-make[3]: *** [.obj\qwaitcondition_unix.obj] Error 1
    mingw32-make[3]: Leaving directory 'c:/Qt/Qt5/5.2.1/Qt5.2.1_Source_Wnds/qtbase/src/corelib'
    Makefile:129: recipe for target 'sub-corelib-make_first' failed
    mingw32-make[2]: *** [sub-corelib-make_first] Error 2
    mingw32-make[2]: Leaving directory 'c:/Qt/Qt5/5.2.1/Qt5.2.1_Source_Wnds/qtbase/src'
    Makefile:41: recipe for target 'sub-src-make_first' failed
    mingw32-make[1]: *** [sub-src-make_first] Error 2
    mingw32-make[1]: Leaving directory 'c:/Qt/Qt5/5.2.1/Qt5.2.1_Source_Wnds/qtbase'
    makefile:60: recipe for target 'module-qtbase-make_first' failed
    mingw32-make: *** [module-qtbase-make_first] Error 2

    c:\Qt\Qt5\5.2.1\Qt5.2.1_Source_Wnds>
    @

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

    1 Reply Last reply
    0
    • M Offline
      M Offline
      marius.maximus
      wrote on last edited by
      #25

      Maybe your toolchain do not have pthread_condattr_setclock ?

      1 Reply Last reply
      0
      • M Offline
        M Offline
        marius.maximus
        wrote on last edited by
        #26

        I see 5.2.1 , Ooooo new Qt release ;)

        1 Reply Last reply
        0
        • K Offline
          K Offline
          koahnig
          wrote on last edited by
          #27

          [quote author="marius.maximus" date="1391721007"]Maybe your toolchain do not have pthread_condattr_setclock ?
          [/quote]

          Yes, you are probably right. I was not able to track this one down before posting. However, I suspected already the same as you.

          [quote author="marius.maximus" date="1391722383"]I see 5.2.1 , Ooooo new Qt release ;)[/quote]

          Yes, I must have downloaded while it was very fresh. Unfortunately, it did not change things.

          [edit, koahnig]

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

          1 Reply Last reply
          0
          • M Offline
            M Offline
            marius.maximus
            wrote on last edited by
            #28

            Please
            comment line with pthread_condattr_setclock function call
            In corelib/thread/qwaitcondition_unix.cpp

            1 Reply Last reply
            0
            • C Offline
              C Offline
              class101
              wrote on last edited by
              #29

              How did you fix this issues guys ? I'm seriously considering down grading to Qt4 that do not have these problems

              1 Reply Last reply
              0
              • K Offline
                K Offline
                koahnig
                wrote on last edited by
                #30

                [quote author="class101" date="1396092288"]How did you fix this issues guys ? I'm seriously considering down grading to Qt4 that do not have these problems[/quote]

                I saw that I am having not only these issues when compiling on windows. I decided to continue the route on Ubuntu until having a solution. However, also there are remaining some questions waiting for a solution.
                Since I had to shift priorities, I am having a couple of loose ends in that respect.

                Do you have a solution with Qt4?

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

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  class101
                  wrote on last edited by
                  #31

                  For QT_CONFIGURE_SETTINGS_PATH
                  In Qt4 (4.8.6 - https://qt.gitorious.org/qt/qt) there is no solution because there is no issue like that as far I tested only Qt5 brings this issue.

                  For the other issue switching Windows commands by Linux commands I have found that it also comes from a Qt5 regression

                  in unix.conf, this line is new from Qt5 and instead should be changed to
                  @include(shell-unix.conf)@

                  unix.conf
                  @!isEmpty(QMAKE_SH) {
                  include(shell-unix.conf)
                  } else {
                  include(shell-win32.conf)
                  }@

                  Will try marlus solution about the first issue, completely ignored its comment my bad, may be working

                  But now I'm building my own qmake.conf with most unnecessary and conflicting += to = and I save it somewhere else so I will not experience regression issues in the future and I have a better control on the options that are used, I think that's the best we can do instead of counting on configuration you can include but not supporting Windows operating system...

                  1 Reply Last reply
                  0
                  • K Offline
                    K Offline
                    koahnig
                    wrote on last edited by
                    #32

                    I would interested to know of your progress, I will continue with this effort when having solved the other issues. It would make live a bit easier.

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

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      class101
                      wrote on last edited by
                      #33

                      Sure, What are you other issues? I may have solved them here

                      Me I fail near the end when compiling plugins

                      @x86_64-unknown-linux-gnu-g++ -pipe -m64 -w -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,X:/libs/qt-5_3_0/qt-linux64-gcc48/lib -o libqsqlite.so .obj\smain.obj .obj\qsql_sqlite.obj .obj\sqlite3.obj .obj\moc_qsql_sqlit
                      e_p.obj -LX:/libs/qt5/qtbase/lib -lQt5Sql -lQt5Core -lpthread
                      X:/libs/compilers/gcc-4.8.2-x86_64-unknown-linux-gnu/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../x86_64-unknown-linux-gnu/lib/../lib64/crt1.o: In function _start': (.text+0x20): undefined reference to main'
                      collect2.exe: error: ld returned 1 exit status
                      Makefile:159: recipe for target '........\plugins\sqldrivers\libqsqlite.so' failed@

                      1 Reply Last reply
                      0
                      • K Offline
                        K Offline
                        koahnig
                        wrote on last edited by
                        #34

                        UCLinux is the problem or not that the issue. So it is more that I still need to be convinced that UCLinux will not create more problems for me. Since I am compiling at the moment under Ubuntu, I bypassing the obvious windows issues.

                        Can you compile other plugins without a problem?

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

                        1 Reply Last reply
                        0
                        • C Offline
                          C Offline
                          class101
                          wrote on last edited by
                          #35

                          Yet haven't tested much I was testing the elder scrolls online that launched today heh
                          But as far I tested yet it is the same error when compiling bearer plugin next to sqlite so it seems this error is global to all plugins, haven't found a workaround yet ;(

                          1 Reply Last reply
                          0
                          • C Offline
                            C Offline
                            class101
                            wrote on last edited by
                            #36

                            finally solved the undefined reference to `main' issue here

                            It was an error in my qmake.conf, oI was setting QMAKE_LFLAGS_PLUGIN = #$$QMAKE_LFLAGS_SHLIB but QMAKE_LFLAGS_SHLIB was declared after this line because I sort variable alphabetically so technically instead of doing QMAKE_LFLAGS_PLUGIN = -shared it was QMAKE_LFLAGS_PLUGIN = and so one why the plugins were executables and not libraries

                            so everything compiled fine here (just not tested Opengl and WebKit and I don't need and don't have mesa compiled yet)

                            you comment the 2 lines in configureapp.cpp

                            @//if ((platform() != WINDOWS) && (platform() != WINDOWS_CE) && (platform() != WINDOWS_RT))@

                            and you change unix.conf
                            @!isEmpty(QMAKE_SH) {
                            include(shell-unix.conf)
                            } else {
                            include(shell-win32.conf)
                            }@

                            but better if you do like me, rebuild a complete qmake.conf, basically I replace the 3 #includes by all the variables they hide, and I use += only when needed for CONFIG and DEFINES for example, changing most += by =

                            @configure.bat -confirm-license -release -opensource -platform win32-g++ -xplatform linux-g++-64 -shared -no-opengl -no-angle -skip qtquick1 -skip declarative -nomake examples -nomake tests -prefix X:/libs/qt-5_3_0/qt-linux64-gcc48 -sysconfdir X:/libs/qt-5_3_0/qt-linux64-gcc48/etc/xdg
                            @

                            1 Reply Last reply
                            0

                            • Login

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