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
    #22

    Still the same issue with echoing fix you have posted.
    I have tried with Qt5.1 as already posted before and this is the trial with Qt5.2.1 released today.
    @
    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\qlibraryinfo
    .obj global\qlibraryinfo.cpp
    global\qlibraryinfo.cpp: In static member function 'static QString QLibraryInfo::location(QLibraryInfo::LibraryLocation)':
    global\qlibraryinfo.cpp:363:20: error: 'QT_CONFIGURE_SETTINGS_PATH' was not declared in this scope
    Makefile:11126: recipe for target '.obj\qlibraryinfo.obj' failed
    mingw32-make[3]: *** [.obj\qlibraryinfo.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>
    @

    This is the code section (line 363 is shown as line 6 below)
    @
    const char *path = 0;
    if (unsigned(loc) < sizeof(qt_configure_prefix_path_strs)/sizeof(qt_configure_prefix_path_strs[0]))
    path = qt_configure_prefix_path_strs[loc] + 12;
    #ifndef Q_OS_WIN // On Windows we use the registry
    else if (loc == SettingsPath)
    path = QT_CONFIGURE_SETTINGS_PATH;
    #endif
    @

    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
      #23

      QT_CONFIGURE_SETTINGS_PATH should be created by configure

      But configure don't create it (it is bug)

      You must by hand add it to
      src\corelib\global\qconfig.cpp

      1 Reply Last reply
      0
      • 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