Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. problem building 32-bit app on 64-bit CentOS
QtWS25 Last Chance

problem building 32-bit app on 64-bit CentOS

Scheduled Pinned Locked Moved General and Desktop
gcccentosqtcreator 3.4.232 bits64 bitsqmake
10 Posts 4 Posters 5.5k 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.
  • K Offline
    K Offline
    Karen Morrissey
    wrote on 17 Sept 2015, 17:17 last edited by Karen Morrissey
    #1

    I am using QtCreator 3.4.2 enterprise on CentOS 6.7. I have created a kit for Qt 4.7.5 using gcc 4.8.2 32-bit.

    I get the following errors:

    skipping incompatible /usr/lib64/libpthread.so when searching for -lpthread
    skipping incompatible /usr/lib64/libm.so when searching for -lm
    skipping incompatible /usr/lib64/libc.so when searching for -lc
    

    This struck me as odd, because it's looking in a place for 64-bit libraries (/usr/lib64) in a 32-bit build. This is confirmed by looking at the actual link step issued from make:

    g++ -m32 -Wl,-rpath,/builds/sprint/third_party/qt_unix/lib -o upload_csv_locations main.o CsvLocationFileLoader.o -L/builds/sprint/third_party/qt_unix/lib -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../jmdb/Libraries/common/ -L/media/NativeBuilds/sprint-creator/leads_all/leads/Utilities/upload_csv_locations/../../../build/Debug/lib/ -lgeos-3.3.9 -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../jmdb/Libraries/jmdbUtil/ -ljmdbUtil -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/log/ -llog -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/util/ -lutil -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/geosUtil/ -L/media/NativeBuilds/sprint-creator/leads_all/leads/Utilities/upload_csv_locations/../../../../../../../builds/sprint-creator/leads_all/build/Debug/lib/ -lbotan-1.8.2 -lcommon -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/snmp/ -lsnmp -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/timeutil/ -ltimeutil -lgeosUtil -lnetsnmp.30 -lssl.0.9.8 -lcrypto.0.9.8 -lQtSql -L/builds/sprint/third_party/qt_unix/../zlib/lib -L/builds/sprint/third_party/qt_unix/../libpng/lib -L/builds/sprint/third_party/qt_unix/../postgresql/lib -L/builds/sprint/third_party/qt_unix/../oracle -L/builds/sprint/third_party/qt_unix/../libtiff/lib -L/builds/sprint/third_party/qt_unix/../openssl/out/lib -L/media/NativeBuilds/sprint/third_party/qt_unix/lib -L/usr/lib64 -lpq -lclntsh -lnnz10 -lQtNetwork -lQtCore -lpthread

    Anyone have any ideas why it is trying to use -L/usr/lib64 in a 32-bit link?

    (Since originally posting, I have discovered that my program successfully builds; I just get warnings that QtCreator shows as errors. But, my original question still stands: why did qmake generate-L/usr/lib64 in a Makefile for a 32-bit link?)

    T 1 Reply Last reply 18 Sept 2015, 23:01
    0
    • D Offline
      D Offline
      David.G
      wrote on 17 Sept 2015, 17:40 last edited by
      #2

      It looks like you don't have libc 686 package installed at first sight. Try

      yum install glibc-devel.i686 libstdc++-devel.i686

      P.S I'm more a debian oriented guy... just did a quick google-fu on the packages name, it might be a tad different.

      1 Reply Last reply
      0
      • K Offline
        K Offline
        Karen Morrissey
        wrote on 17 Sept 2015, 19:14 last edited by
        #3

        I already have those packages installed. As I mentioned in a comment I added at the end of the original posting, it turns out these are not errors, just warnings. But my original question still stands: why is -L/usr/lib64 being added by qmake when it knows this is a 32-bit build?

        I don't suppose there's a way to get creator to not treat those messages as errors? I don't think there's enough context for it to know that they're not errors.

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 17 Sept 2015, 19:40 last edited by
          #4

          Hi and welcome to devnet,

          How did you build Qt 4.7.5 ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • K Offline
            K Offline
            Karen Morrissey
            wrote on 18 Sept 2015, 21:32 last edited by
            #5

            Qt 4.7.5 was built for 32-bit release.

            1 Reply Last reply
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 18 Sept 2015, 21:38 last edited by
              #6

              What options were used ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • K Offline
                K Offline
                Karen Morrissey
                wrote on 18 Sept 2015, 21:56 last edited by
                #7

                Here's the configure call that was used before building Qt:

                 ./configure -prefix `pwd` -qt-gif -qt-libjpeg -system-zlib -system-libpng -qt-libmng -cups -stl \
                         -I`pwd`/../zlib/include -I`pwd`/../libpng/include -L`pwd`/../zlib/lib -L`pwd`/../libpng/lib \
                         -qt-sql-oci -qt-sql-psql -I`pwd`/../postgresql/include -I`pwd`/../oracle/x64/sdk/include \
                         -L`pwd`/../postgresql/lib -L`pwd`/../oracle/x64 -system-libtiff -openssl \
                         -I`pwd`/../libtiff/include -I`pwd`/../openssl/out/include -L`pwd`/../libtiff/lib \
                         -L`pwd`/../openssl/out/lib -no-qt3support -fast -nomake examples \
                         -nomake demos -nomake docs -nomake translations -commercial
                
                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 18 Sept 2015, 22:04 last edited by
                  #8

                  Something's strange here, if it's a 32 bit build, why are you giving path to oracle 64bit sdk ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • K Offline
                    K Offline
                    Karen Morrissey
                    wrote on 18 Sept 2015, 22:11 last edited by
                    #9

                    I copied from the wrong place in our main Makefile; the configure step above was for 64-bit builds. The 32-bit build configure for CentOS 6 is as follows:

                    ./configure -prefix `pwd` -v -platform linux-g++-32 -qt-gif -qt-libjpeg -system-zlib -qt-libmng -cups -stl \
                            -I`pwd`/../zlib/include -I`pwd`/../libpng/include -L`pwd`/../zlib/lib -L`pwd`/../libpng/lib -qt-sql-oci -qt-sql-psql \
                            -I`pwd`/../postgresql/include -I`pwd`/../oracle/sdk/include -L`pwd`/../postgresql/lib -L`pwd`/../oracle \
                            -system-libtiff -openssl -I`pwd`/../libtiff/include -I`pwd`/../openssl/out/include -L`pwd`/../libtiff/lib \
                            -L`pwd`/../openssl/out/lib -no-qt3support -fast -nomake examples \
                            -nomake demos -nomake docs -nomake translations -commercial
                    
                    1 Reply Last reply
                    0
                    • K Karen Morrissey
                      17 Sept 2015, 17:17

                      I am using QtCreator 3.4.2 enterprise on CentOS 6.7. I have created a kit for Qt 4.7.5 using gcc 4.8.2 32-bit.

                      I get the following errors:

                      skipping incompatible /usr/lib64/libpthread.so when searching for -lpthread
                      skipping incompatible /usr/lib64/libm.so when searching for -lm
                      skipping incompatible /usr/lib64/libc.so when searching for -lc
                      

                      This struck me as odd, because it's looking in a place for 64-bit libraries (/usr/lib64) in a 32-bit build. This is confirmed by looking at the actual link step issued from make:

                      g++ -m32 -Wl,-rpath,/builds/sprint/third_party/qt_unix/lib -o upload_csv_locations main.o CsvLocationFileLoader.o -L/builds/sprint/third_party/qt_unix/lib -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../jmdb/Libraries/common/ -L/media/NativeBuilds/sprint-creator/leads_all/leads/Utilities/upload_csv_locations/../../../build/Debug/lib/ -lgeos-3.3.9 -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../jmdb/Libraries/jmdbUtil/ -ljmdbUtil -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/log/ -llog -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/util/ -lutil -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/geosUtil/ -L/media/NativeBuilds/sprint-creator/leads_all/leads/Utilities/upload_csv_locations/../../../../../../../builds/sprint-creator/leads_all/build/Debug/lib/ -lbotan-1.8.2 -lcommon -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/snmp/ -lsnmp -L/media/NativeBuilds/sprint-creator/build-leads_all-Desktop_Qt_4_7_5_GCC_32bit-Debug/leads/Utilities/upload_csv_locations/../../../ips/Libraries/timeutil/ -ltimeutil -lgeosUtil -lnetsnmp.30 -lssl.0.9.8 -lcrypto.0.9.8 -lQtSql -L/builds/sprint/third_party/qt_unix/../zlib/lib -L/builds/sprint/third_party/qt_unix/../libpng/lib -L/builds/sprint/third_party/qt_unix/../postgresql/lib -L/builds/sprint/third_party/qt_unix/../oracle -L/builds/sprint/third_party/qt_unix/../libtiff/lib -L/builds/sprint/third_party/qt_unix/../openssl/out/lib -L/media/NativeBuilds/sprint/third_party/qt_unix/lib -L/usr/lib64 -lpq -lclntsh -lnnz10 -lQtNetwork -lQtCore -lpthread

                      Anyone have any ideas why it is trying to use -L/usr/lib64 in a 32-bit link?

                      (Since originally posting, I have discovered that my program successfully builds; I just get warnings that QtCreator shows as errors. But, my original question still stands: why did qmake generate-L/usr/lib64 in a Makefile for a 32-bit link?)

                      T Offline
                      T Offline
                      theshadowx
                      wrote on 18 Sept 2015, 23:01 last edited by
                      #10

                      @Karen-Morrissey
                      I think because when you did ./configure to look for needed libraries, it first found those in /usr/lib64.

                      Why not to force the configure to use those for 32bit by adding

                      -L /path/to/lib/32bit -lpthread -lm -lc

                      to your configure command

                      1 Reply Last reply
                      0

                      2/10

                      17 Sept 2015, 17:40

                      8 unread
                      • Login

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