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_windows

    I 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-config

    QMAKESPEC...................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..........no

    Third Party Libraries:
    ZLIB support............system
    GIF support.............plugin
    JPEG support............plugin
    PNG support.............yes
    FreeType support........yes

    PCRE support............qt
    ICU support.............no
    ANGLE...................no
    

    Styles:
    Windows.................yes
    Windows XP..............no
    Windows Vista...........no
    Fusion..................yes
    Windows CE..............no
    Windows Mobile..........no

    Sql Drivers:
    ODBC....................no
    MySQL...................no
    OCI.....................no
    PostgreSQL..............no
    TDS.....................no
    DB2.....................no
    SQLite..................plugin (qt)
    SQLite2.................no
    InterBase...............no

    Sources 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.


Log in to reply
 

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