Skip to content

0x-ff/libmysql-android

Repository files navigation

libmysql-android

Native "C" libmysql porting for Android (arm, API Levels 8,9,14)

Как пересобрать libmysql ?

Вообще у NDK есть клевая документация как и cmake и у mysql, однако.

Сначала нужно подготовить среду для кросскомпилляции

	$NDK/build/tools/make-standalone-toolchain.sh \
		--arch=<arch> \
		--platform=<api level> \
		--install-dir=$YOUR_STANDALONE_TOOLCHAINS_ROOT/<api level>/<arch> --ndk-dir=$NDK

$NDK - путь к NDK (у меня /media/pavel/android/ndk-crystax) $YOUR_STANDALONE_TOOLCHAINS_ROOT - общий путь для кросскомпилляции (у меня /media/pavel/android/standalone-toolchains)

Нужно выбрать API Level
android-8 для Android2.2, android-9 для Android2.3, android-14 для Android4.0 и архитектуру (x86|arm)

Сделать симлинк в каталоге

		$YOUR_STANDALONE_TOOLCHAINS_ROOT/<api level>/<arch>/sysroot/usr/include/net
		ln -s if_ether.h ethernet.h

Изменяем генератор include/my_config.h.in добавляем в него следующие строчки

typedef unsigned short ushort;
#define S_IREAD 0400
#define HAVE_RINT 0

Создаем Makefile

cmake 2.6.x:
    cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=`pwd`/install -DCMAKE_TOOLCHAIN_FILE=<api level><arch>.cmake.2.6

cmake 2.8.x:
    cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=`pwd`/install -DCMAKE_TOOLCHAIN_FILE=<api level><arch>.cmake

Собираем:

make libmysql
make mysqlclient

Важное замечание, если собираете для нескольких разных тулчейнов, перед тем как запускать команду cmake ОБЯЗАТЕЛЬНО удалите старый CMakeCache.txt руками иначе соберете для неверной архитектуры.

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=`pwd`/install -DCMAKE_TOOLCHAIN_FILE=<api level><arch>.cmake
make libmysql
make mysqlclient
cp libmysql/libmysqlclient.a <install dir>/libmysqlclient.a
cp libmysql/libmysql.so <install dir>/libmysql.so
make clean

unlink CMakeCache.txt

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=`pwd`/install -DCMAKE_TOOLCHAIN_FILE=<other api level><other arch>.cmake
make libmysql
make mysqlclient
cp libmysql/libmysqlclient.a <install dir>/libmysqlclient.a
cp libmysql/libmysql.so <install dir>/libmysql.so
make clean

Смотрим в каталог libmysql/ там будет libmysql.so и mysqlclient.a

About

Libmysqlclient native port to android

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published