<direct.h> not found from /Qt/5.9.1/mingw53_32/mkspecs/win32-g++/qplatformdefs.h



  • I am trying to compile this library, which worked perfectly on linux (Qt5.7) but when doing so under windows (Qt5.9.1), I get a strange error that the included 'direct.h' in /Qt/5.9.1/mingw53_32/mkspecs/win32-g++/qplatformdefs.h cannot be found. Any suggestions?

    So far, thw windows installed Qt5.9.1 has always worked for all my other projects...


  • Qt Champions 2017

    hi @ModelTech,

    the library has not been updated since 3 years, so it's likely that it won't compile with newer Qt's.

    have you seen the (still open) pull request? it contains build fixes for Qt 5.8, maybe they help you.

    regards



  • I fixed the bug as they suggested there, which enables to compile it on Linux, but the windows compilation seems to get stuck on a qt problem as the <direct.h> is included in a windows-specific qt platform file qplatformdefs.h. So, I would guess this is not necessarily directly related to the library being outdated but I could be wrong :?



  • Well, I have solved this one problem by adding extra version numbers to the QtOfficeOpenXml.version.in file that is somewhere in the package, but now I run into linking issues:

    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x138): undefined reference to `inflateEnd'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x158): undefined reference to `deflateEnd'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x198): undefined reference to `deflateReset'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x1b4): undefined reference to `inflateReset'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x291): undefined reference to `crc32'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x397): undefined reference to `inflateInit2_'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x3fe): undefined reference to `deflateInit2_'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x525): undefined reference to `deflate'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x566): undefined reference to `crc32'
    ./.obj/release/kgzipfilter.o:kgzipfilter.cpp:(.text+0x631): undefined reference to `inflate'
    ./.obj/release/kzip.o:kzip.cpp:(.text+0x36): undefined reference to `crc32'
    ./.obj/release/kzip.o:kzip.cpp:(.text+0x2a0b): undefined reference to `crc32'
    ./.obj/release/kzip.o:kzip.cpp:(.text+0x2df8): undefined reference to `crc32'
    collect2.exe: error: ld returned 1 exit status
    

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.