Qt5.1 Beta 1 Error Compiling Android xkbcommon.h
-
Hi All,
I am trying to compile the Qt5.1 beta for android on WinXP using the following guide
http://qt-project.org/wiki/building_qt-android_on_windowsI am configuring with
@C:\Android\Qt5Android>configure.bat -developer-build -platform win32-g++ -xplatform android-g++ -android-ndk C:\Android
android-ndk-r8e -android-sdk C:\Android\android-sdk -nomake tests -nomake examples -skip qttools -skip qtwebkit -skip qt
serialport -skip qtwebkit-examples@and get the following error
@C:/Android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -Wno-p
sabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums
-DANDROID -Wa,--noexecstack -std=gnu++0x -O2 -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fv
isibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -Wno-psabi -W -D_REENTRANT -fPIC -DQT_NO_PRINTDIALOG
-DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -I........\mkspecs\android-g++ -I. -I......
..\include -I........\include\QtGui -I........\include\QtGui\5.1.0 -I........\include\QtGui\5.1.0\QtGui -I...
.....\include\QtCore -I.moc\release_shared -IC:\Android\android-ndk-r8e\sources\cxx-stl\gnu-libstdc++\4.7\include -IC:
\Android\android-ndk-r8e\sources\cxx-stl\gnu-libstdc++\4.7\libs\armeabi-v7a\include -IC:\Android\android-ndk-r8e\platfor
ms\android-9\arch-arm\usr\include -o .obj\release_shared\qtablegenerator.obj generator\qtablegenerator.cpp
generator\qtablegenerator.cpp:51:33: fatal error: xkbcommon/xkbcommon.h: No such file or directory
compilation terminated.@I noticed there is a copy of XKBCommon in 3rd party but i don't think its built
Cheers
Simon -
before someone asks my configure output is
@Creating qmake...
mingw32-make: Nothing to be done for 'first'.
Running configuration tests...
Could Not Find C:\Android\Qt5Android\qtbase\config.tests\arch*~
Environment:
INCLUDE=
Unset
LIB=
Unset
PATH=
C:\MINGW\mingw32\bin
C:\MINGW\mingw32\i686-w64-mingw32\bin
C:\WINDOWS\system32
C:\WINDOWS
C:\Program Files\Java\jdk1.7.0_21\bin
C:\Program Files\InstallAware\InstallAware 9
C:\strawberryperl\c\bin
C:\strawberryperl\perl\site\bin
C:\strawberryperl\perl\bin
Configuration:
warnings_are_errors
minimal-config
small-config
medium-config
large-config
full-config
pcre
release
cross_compile
Qt Configuration:
private_tests
release
c++11
shared
system-zlib
png
freetype
accessibility
opengl
opengles2
egl
audio-backend
native-gestures
qpa
inotify
reduce_exports
concurrent
minimal-config
small-config
medium-config
large-config
full-configQMAKESPEC...................android-g++ (commandline)
Architecture................arm, features:
Host Architecture...........i386, features:
Maketool....................mingw32-make
Debug.......................no
Force debug info............no
C++11 support...............yes
Link Time Code Generation...no
Accessibility support.......yes
RTTI support................yes
SSE2 support................no
SSE3 support................no
SSSE3 support...............no
SSE4.1 support..............no
SSE4.2 support..............no
AVX support.................no
AVX2 support................no
NEON support................no
IWMMXT support..............no
OpenGL support..............yes
Large File support..........no
NIS support.................no
Iconv support...............no
Inotify support.............yes
Glib support................no
CUPS support................no
OpenVG support..............no
OpenSSL support.............no
Qt D-Bus support............no
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........no
Use system proxies..........noThird Party Libraries:
ZLIB support............system
GIF support.............plugin
JPEG support............plugin
PNG support.............yes
FreeType support........yesPCRE support............qt ICU support.............no ANGLE...................no
Styles:
Windows.................yes
Windows XP..............no
Windows Vista...........no
Fusion..................yes
Windows CE..............no
Windows Mobile..........noSql Drivers:
ODBC....................no
MySQL...................no
OCI.....................no
PostgreSQL..............no
TDS.....................no
DB2.....................no
SQLite..................plugin (qt)
SQLite2.................no
InterBase...............noSources are in..............C:\Android\Qt5Android\qtbase
Build is done in............C:\Android\Qt5Android\qtbase
Install prefix..............C:\Android\Qt5Android\qtbase
Headers installed to........C:\Android\Qt5Android\qtbase\include
Libraries installed to......C:\Android\Qt5Android\qtbase\lib
Arch-dep. data to...........C:\Android\Qt5Android\qtbase
Plugins installed to........C:\Android\Qt5Android\qtbase\plugins
Library execs installed to..C:\Android\Qt5Android\qtbase\bin
QML1 imports installed to...C:\Android\Qt5Android\qtbase\imports
QML2 imports installed to...C:\Android\Qt5Android\qtbase\qml
Binaries installed to.......C:\Android\Qt5Android\qtbase\bin
Arch-indep. data to.........C:\Android\Qt5Android\qtbase
Docs installed to...........C:\Android\Qt5Android\qtbase\doc
Translations installed to...C:\Android\Qt5Android\qtbase\translations
Examples installed to.......C:\Android\Qt5Android\qtbase\examples
Tests installed to..........C:\Android\Qt5Android\qtbase\tests
Using internal configuration.Generating Makefiles...
Qt is now configured for building. Just run mingw32-make.
To reconfigure, run mingw32-make confclean and configure.- C:/Android/Qt5Android/qtbase/bin/qmake C:/Android/Qt5Android/qt.pro@
-
@SimonL
You asked in my post, so here it goes.
What I did was basically to install virtualbox, build the library under ubuntu and then copy the result to the Mingw’s include and lib directories, that seems to have solved the issue. What appears to be the best is to install linux in your development machine compile and deploy from there.
The last time the windows wiki page was updated -was I think a week after the release of Qt5.1.0 and since then no more updates- it was updated two days ago though the content is still the same, there were however several changes in the linux/mac page which leads me to think that buidling under linux is being given more attention than building under windows.And you are correct, there is a copy of xkbcommon under qtbase/src/3rdparty/ it is not built but you can still do it manually. After you configure, set qmake in your path go to 3rdparty and run qmake xkbcommon.pri then mingw32-make that will build xkbcommon and put the result (libxkbcommon.so) in qtbase lib folder.
EDIT: I forgot to mention that you need to go to qtbase/src/plugins/platforminputcontexts/compose then run qmake and append -lxkbcommon to the line LIBS in the generated makefile. Then everything should work fine.
I apologize I didn't read you reply properly and post it in my thread.
-
Cheers, I ended up doing something similar to your second solution and that seems to have worked, I noticed a bug report on it so hopefully it will be fixed soon.
-
It was me who filed the bug, I'm glad you got it running. Cheers.