Build Qt 5 PostgreSQL Plugin for Android

From Qt Wiki
Jump to: navigation, search

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Building postgresql plugin is pretty straight forward.

If you don't want to build them yourself you can download the plugin here[1]. All you need to do is copy into /path/to/qt/android_armv7/plugins/sqldrivers/. It's statically linked to libpq!

Setting up Enviroment Variables

Compiling only libpq should work fine with android-9 which is what qt-android is currently compiled with. export ANDROID_NDK_ROOT="/path/to/android/ndk" SR="$ANDROID_NDK_ROOT/platforms/android-9/arch-arm" BR="$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-"


Posgresql source can be downloaded from These instructions are only tested on the 9.4.1. Once downloaded extract.


cd into the postgresql directory and run configure

STRIP="$BR"strip RANLIB="$BR"ranlib OBJDUMP="$BR"objdump AR="$BR"ar CC="$BR"gcc CFLAGS=--sysroot=$SR CPP="$BR"cpp CPPFLAGS=$CFLAGS \ ./configure --prefix=$SR/usr --host=arm-linux-androideabi --target=arm-linux-androideabi --build="$CHOST" --without-readline

Since android requires that .so files end in .so and not with a version number copy and replace two things in src/Makefile.shlib


sed -e 's/lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)/lib$(NAME)$(DLSUFFIX)/g' -i src/Makefile.shlib sed -e 's/lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)/lib$(NAME)$(DLSUFFIX)/g' -i src/Makefile.shlib

Next run make. For the driver we only need libpq.

make -C src/interfaces/libpq

Building the plugin

Next download the source for Qt 5 if you don't have it. We only need base After downloading and extracting cd into "qtbase-opensource-src-5.4.1/src/plugins/sqldrivers/psql/"

Run qmake followed by make qmake "INCLUDEPATH+=/path/to/postgresql-9.4.1/src/interfaces/libpq /path/to/postgresql-9.4.1/src/include" "LIBS+=-L/path/to/postgresql-9.4.1/src/interfaces/libpq/ -lpq" make install

Build your Android App

Finally to build your android app you'll need to add Add this line to your .pro file ANDROID_EXTRA_LIBS=/path/to/postgresql-9.4.1/src/interfaces/libpq/