Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL C API libraries for iPhone

Tags:

mysql

iphone

arm

Does anybody know where to get a MySQL libraries compiled for the arm iPhone architecture?

Or how to cross-compile MySQL for arm?

Thanx

like image 684
Igor Avatar asked Nov 27 '22 17:11

Igor


2 Answers

Here's how I did it:

1) Download the source code version of Connector/C from MySQL

2) Download cmake (if you have macports installed, type "sudo port install cmake")

3) Get toolchain files from http://sites.google.com/site/michaelsafyan/coding/resources/how-to-guides/cross-compile-for-the-iphone/how-to-cross-compile-for-the-iphone-using-cmake

4) In the toolchain file for the simulator, remove one architecture from the line containing CMAKE_OSX_ARCHITECTURES

5) If you want to build for the simulator, copy the missing headers in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/usr/include/netinet/ (ip.h and in_system.h) from /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/include/netinet

6) Create a directory called "compiled_library" somewhere, eg on your Desktop

7) Call cmake like this: cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/iphone-toolchain-file -DCMAKE_INSTALL_PREFIX=/path/to/compiled_library -DHAVE_FDATASYNC:INTERNAL=0

8) Note that if you want to run cmake a 2nd time, you might have to delete the cache file first

9) type make install

10) Now you have the compiled library in /path/to/compiled_library. Copy the header file directory and libmysql.a to your xcode project via "Add existing files...". The library should be automtically added to the linker stage.

11) WOOHOO. Use the mysql C API.

12) If this is too much work, I'm currently writing a MySQL wrapper framework for the iPhone. I will publish it sometime in the next ten years and put a link here.

EDIT: Someone else created an Objective C Wrapper for the MySQL client library: http://www.karlkraft.com/index.php/2010/09/17/mysql-for-iphone-and-osx/

like image 62
Jakob Egger Avatar answered Dec 15 '22 15:12

Jakob Egger


do you need client or server libraries? Anyway, since OS X supports unix scripts you should at least try build using "regular Unix" approach:

client: http://dev.mysql.com/doc/refman/5.1/en/connector-c-building.html

server: http://dev.mysql.com/doc/refman/5.1/en/installing-source.html

like image 43
noonex Avatar answered Dec 15 '22 15:12

noonex