Like the "How to build unit tests & examples on demand with Qt6/CMake?" thread, now I need to build a 32-bit build of Qt but I don't know how.
TL;DR: need to set PKG_CONFIG_LIBDIR in the environment and pass to cmake: -DCMAKE_ASM_FLAGS=-m32 -DCMAKE_C_FLAGS=-m32\ -O0 -DCMAKE_CXX_FLAGS=-m32\ -O0 -DCMAKE_PREFIX_PATH=/usr/lib32 Is this the correct solution? Is there a better way? I've done this: A) try a 64-bit build 1) cmake [some arguments for 64-bit] 2) ninja 3) confirm everything built just fine B) attempt a 32-bit build 1) cmake [exactly same arguments] \ -DFEATURE_gui=OFF -DCMAKE_C_FLAGS=-m32\ -O0 -DCMAKE_CXX_FLAGS=-m32\ -O0 2) ninja tst_thetest Fails with: : && /home/tjmaciei/bin/g++ -m32 -O0 -g -Wl,--gc-sections src/tools/rcc/ CMakeFiles/rcc.dir/main.cpp.o src/tools/rcc/CMakeFiles/rcc.dir/rcc.cpp.o -o bin/rcc -Wl,-rpath,:::::::::::::: src/tools/bootstrap/libBootstrap.a /usr/lib64/libzstd.so -lpthread /usr/lib32/libz.so && : /usr/bin/ld: /usr/lib64/libzstd.so: error adding symbols: file in wrong format Note how the path to libzstd is wrong. The CMake output had this: -- Found ZLIB: /usr/lib32/libz.so (found suitable version "1.2.11.1", minimum required is "1.0.8") -- Found ZSTD: /usr/lib64/libzstd.so (found suitable version "1.4.5", minimum required is "1.3") -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") -- Found WrapDBus1: /usr/lib32/libdbus-1.so (found suitable version "1.12.20", minimum required is "1.2") /usr/lib32/libzstd.so does exist. 3) rm -rf *; cmake [same as above but add] -DCMAKE_PREFIX_PATH=/usr/lib32 ... -- Found ZLIB: /usr/lib32/libz.so (found suitable version "1.2.11.1", minimum required is "1.0.8") -- Found ZSTD: /usr/lib32/libzstd.so (found suitable version "1.4.5", minimum required is "1.3") ... -- Found WrapSystemPCRE2: /usr/lib64/libpcre2-16.so (found suitable version "10.35", minimum required is "10.20") 4) ninja tst_thetest Fails during QtCore linking: /usr/bin/ld: /usr/lib64/libpcre2-16.so: error adding symbols: file in wrong format There is no 32-bit pcre2-16. 5) rm -rf *; export PKG_CONFIG_LIBDIR=/usr/lib32/pkgconfig:/usr/share/pkgconfig; cmake [as above with -DCMAKE_PREFIX_PATH] -- Using Qt bundled PCRE2. -- Found WrapPCRE2: TRUE -- Could NOT find WrapSystemPCRE2 (missing: PCRE2_LIBRARIES __pcre2_found) (Required is at least version "10.20") 6) ninja tst_thetest Fails during QtCore linking: /usr/bin/ld: i386:x86-64 architecture of input file `src/corelib/CMakeFiles/ Core.dir/global/minimum-linux.S.o' is incompatible with i386 output 7) rm -rf *; export PKG_CONFIG_LIBDIR=/usr/lib32/pkgconfig:/usr/share/pkgconfig; cmake [as above with -DCMAKE_PREFIX_PATH] -DCMAKE_ASM_FLAGS=-m32 8) ninja tst_thetest Success -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel DPG Cloud Engineering _______________________________________________ Development mailing list [email protected] https://lists.qt-project.org/listinfo/development
