Solved 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#HWindowsThose 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 ?
-
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 /ZiI 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 ?
-
What errors are you getting ?
-
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 ??
-
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 :( -
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 ?
-
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) -
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 :( -
@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?
-
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 -
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.. -
xpdf depends on freetype so if you haven't built it that's why you are getting the missing symbols.
-
@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.