Building Open-Sankoré on windows



  • I'm working on developing a software for interactive whiteboards based on Open-Sankoré..I succeeded to build Sankoré on ubuntu and now I' trying to build it on windows through either qt-creator or visual studio 2015..

    That's the only resource found on the internet about this issue:
    http://dev.open-sankore.org/xwiki/bin/view/Community/SourceRepository#HWindows

    Those are the steps I did till now on visual studio:
    1- I cloned the project from its repo: github.com/Sankore/Sankore-3.1..
    2- I installed Qt5.6 and qt5 plugin in VS, then I set qt path and version..
    3- I imported the provided pro file in VS that generated me .vcprojx file..
    4- I then opened this project file and tried to build the solution..
    After then more than 2500 errors appeared on the output window..I guess most of them due to difference in qt version..

    I also tired to build on qt-creator as follows:
    1- I installed qt 4.8.6 package and mingw 4
    2- I tried then to build the solution but errors also appeared continuously..

    I'm asking here is there anyway to avoid such errors and build such an old qt version program using the current qt packages or BY ANY MEANS ?? or even anyone succeeded to build the project on windows can tell me how ?


  • Lifetime Qt Champion

    Hi,

    WARNING: I've never built that project.

    From a quick look at the source of the project on the master branch: currently you can't build it with Qt 5 out of the box.

    The project uses phonon which is not available officially with Qt 5. You can take a look at the Phonon4Qt5 project for that part.
    Then there's QtWebKit which has been deprecated in Qt 5.5 and removed from the pre-built package in 5.6. That one you can build by hand.

    Same goes for the QtScript module.

    Did you try to build the Visual Studio solution with MinGW ? AFAIK you can't do that. Just build the project through QtCreator if you want to use MinGW.

    Otherwise, what error are you getting ?



  • When I try to build on Qt-creator using Qt 4.8.6 kit..Initially build fails due to those 2 lines in the pro files:
    QMAKE_CXXFLAGS += /MP
    QMAKE_CXXFLAGS_RELEASE += /Od /Zi

    I know they are for msvc compiler but I didn't know by what to replace them with or delete them..(BTW, when I deleted them them other errors appeared)

    Any idea ?


  • Lifetime Qt Champion

    What errors are you getting ?



  • @SGaist

    There was many other compiler errors that occurred due compiler differences between msvc and mingw..but I resolved them by some walk arounds..

    But those errors appeared to me after the generation of the moc files:

    g++: ole32.lib: No such file or directory
    g++: oleaut32.lib: No such file or directory
    g++: user32.lib: No such file or directory
    g++: gdi32.lib: No such file or directory
    g++: advapi32.lib: No such file or directory
    

    Any idea how to fix them ??


  • Lifetime Qt Champion

    Which exact version of Qt are you using ?



  • @SGaist
    [[Updated]]
    I switched Qt 4.8.7-mingw32 and I passed these errors finally but new error appeared to me about "-lWmvcore" can't be found :(


  • Moderators

    Hi @GamalMohamed,

    I'm not very familiar with this toolkit, but I've heard of others succeeding before. See if this thread provides any clues: https://forum.qt.io/topic/24482/qt-5-0-1-project-error-unknown-module-s-in-qt-phonon/7



  • @JKSH
    Oh yes thanks :)
    I saw this thread before but it did benefit me a lot unfortuantely..

    Anyway I passed the above mentioned errors by changing my compiler to mingw32..but now I have this new error:

    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0x66): undefined reference to `FT_Library_Version'
    D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0xaf): undefined reference to `FT_Init_FreeType'
    D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0x11a): undefined reference to `FT_Done_FreeType'
    C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/bin/ld.exe: D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o): bad reloc address 0x20 in section `.eh_frame'
    collect2.exe: error: ld returned 1 exit status
    

    Any idea how to handle this ?


  • Lifetime Qt Champion

    Did you do a full rebuild ?

    By the way, why not use the MinGW version provided by Qt ?

    One thing to simplify your life: remove the spaces in your path. They almost always have been problematic on Windows.



  • @SGaist
    Yes..I did a complete rebuild and now moved the file to shorter and simpler path..
    but same link errors appeared :(

    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    Warning: corrupt .drectve at end of def file
    C:/Users/JIMMY/Desktop/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0x66): undefined reference to `FT_Library_Version'
    C:/Users/JIMMY/Desktop/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0xaf): undefined reference to `FT_Init_FreeType'
    C:/Users/JIMMY/Desktop/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0x11a): undefined reference to `FT_Done_FreeType'
    C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/bin/ld.exe: C:/Users/JIMMY/Desktop/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o): bad reloc address 0x20 in section `.eh_frame'
    collect2.exe: error: ld returned 1 exit status
    

    Note:
    I am using Qt downloaded from here
    http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-opensource-windows-x86-mingw482-4.8.7.exe
    and this version of mingw "i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z" (mingw32)


  • Moderators

    Open Sankore uses a modified version of Qt, not the official version of Qt.

    Their build instructions are at http://dev.open-sankore.org/xwiki/bin/view/Community/SourceRepository If you still can't get it to work, perhaps try asking the Open Sankore community?



  • @JKSH
    I know but I tried several times to follow these steps but in vain...these versions on VS are out of date now and couldn't be found..
    I reached a good point in compiling the project but this linking problem stumped me a lot :(


  • Moderators

    @GamalMohamed said:

    I know but I tried several times to follow these steps but in vain...

    Sorry, I didn't notice that you already posted the same link in your original post!

    Warning: corrupt .drectve at end of def file
    

    I'm not sure what these mean, I'm afraid...

    D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0x66): undefined reference to `FT_Library_Version'
    D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0xaf): undefined reference to `FT_Init_FreeType'
    D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o):SplashFTFontEngine.cc:(.text+0x11a): undefined reference to `FT_Done_FreeType'
    C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/bin/ld.exe: D:/2- Extra-circular work/RGB Internship/sources/Open-sankore sources/Project2/ThirdParty/xpdf/lib/win32/libxpdf.a(SplashFTFontEngine.o): bad reloc address 0x20 in section `.eh_frame'
    

    How did you build the FreeType and Xpdf libraries?


  • Lifetime Qt Champion

    It looks like the ThirdParty repository provides some of the dependencies as pre-built lib files. Taking the build documentation as reference, they are likely built for Visual Studio 2008 which is not compatible with Visual Studio 2015 and even less MinGW.



  • @JKSH
    There's a .pro file found in the repo: https://github.com/Sankore/Sankore-ThirdParty
    I used it to compile the project using Qt-creator (mingw32-Qt 4.8.6) and then put the build files in the same directory with source files..
    Same thing done for xpdf..

    @SGaist
    I didn't use any pre-built lib files as far I can see...Have a look at the files i use:
    https://goo.gl/Xv4mbV


  • Lifetime Qt Champion

    I didn't say you did: the repository provides them. Look at the microsoft folder.



  • @SGaist
    I saw them..but I think the linker isn't complaining from them, is it? :/
    These errors are from xpdf and freetype..


  • Lifetime Qt Champion

    xpdf depends on freetype so if you haven't built it that's why you are getting the missing symbols.


  • Moderators

    @GamalMohamed said:

    I used it to compile the project using Qt-creator (mingw32-Qt 4.8.6) and then put the build files in the same directory with source files..
    Same thing done for xpdf..

    You also need to tell the linker exactly which library files to use. Just putting the files in the same folder is not enough.

    In your .pro file, you need something like LIBS += -lfreetype (see https://github.com/Sankore/Sankore-ThirdParty/blob/master/libs.pri ). I'm guessing that you got the "Undefined reference" errors because this line is missing.



  • FINAAAAAAAAAAALYYYYYYY IT BUILT & RAN !
    Thnx 2 all of u guys :)


  • Qt Champions 2016

    @GamalMohamed
    good work :)

    so u made it compile with mingw?

    Any change to share this setup? on git or something like that.


  • Moderators

    @GamalMohamed said:

    FINAAAAAAAAAAALYYYYYYY IT BUILT & RAN !
    Thnx 2 all of u guys :)

    Congratulations! :) What was the secret?



  • The Secret is simple :)
    I used VS2008 to build the project and it ran like magic :D

    Concerning the other approaches that are available on long term: (if anyone interested :) )

    • It's too hard to be built on Qt-creator using mingw (even if we use qt4.8 kit) as Sankoré depends on external libraries that are very hard (and maybe impossible!) to be built using mingw..

    • Also on VS2015 it's also too hard as it uses modules that have been removed from Qt5.6 or 5.7 like phonon, QtWebkit, QFtp, ...etc

    So,any of these 2 methods needs a "hard & deep Porting operation" to be able to build and run Sankoré on it using Qt5..


  • Moderators

    Thanks for sharing! All the best with your project


Log in to reply
 

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