Help compiling libimobiledevice please

Anonymous
timer Asked: Jun 13th, 2013
account_balance_wallet $5

Question Description

Hi,

Please can anyone show me how to compile the 'Libimobiledevice' tools on windows please? There website says its cross-platform but there seems to be no information about how to compile them for windows. I have idevicerecovery working on ubuntu by following some instructions but i'd like to have the complete toolset running under windows.

Thanks

Tutor Answer

Smartbrains
School: University of Virginia

Here is the answer


LIBIMOBILE DEVICE LIBRARY FOR WINDOWS
Now you can use libimobiledevice on windows. For example, you can develop a win app to synchronize Bookmark between Firefox and iPhone etc.


About
=====
A library you can used on WINDOWS to communicate with services running on Apple iPhone/iPod Touch devices. You can find source code here http://www.libimobiledevice.org/. And there is a list about what this library support. I just compiled it on Windows, so you can use it in your win32 apps.
I both compiled static and dynamic-link library. You can choose one which you prefer, BUT please read this FIRST.
Static Library
==============
You should install MinGW gcc in your system before using this static library. Because i'm too stupid and lazy to solve some problem there
So you can only compile it on MinGW-gcc and use it on windows.
Examples:
gcc -o ideviceinfo ideviceinfo.c -I./Include/ ./Lib/imobiwin32.lib ./Lib/glib-2.0.lib ./Lib/libgcrypt.a ./Lib/libgpg-error.a ./Lib/libxml2 -static

gcc -o idevice_id idevice_id.c -I./Include/ ./Lib/imobiwin32.lib ./Lib/glib-2.0.lib ./Lib/libgcrypt.a ./Lib/libgpg-error.a ./Lib/libxml2 -static
gcc -o idevicepair idevicepair.c -I./Include/ ./Lib/imobiwin32.lib ./Lib/glib-2.0.lib ./Lib/libgcrypt.a ./Lib/libgpg-error.a ./Lib/libxml2 -static
Dynamic-Link Library
====================
This one is much easier to use if you prefer MSVC than gcc.
I only test in Microsoft Visual Studio 2008/2010.
Notice
Maybe you need dynamically load free function which exported from msvcrt.dll and use it to free some memory. Since some functions use malloc exported from msvcrt.dll. For example
Both examples had define function ptr Myfree. Like this
typedef void (*MYFREEFUNC)(void *memblock);
MYFREEFUNC Myfree;
void InitFreeFunc()
{
HMODULE hMod = LoadLibrary(_T("msvcrt.dll"));
Myfree = (MYFREEFUNC)GetProcAddress(hMod, "free");
}
example 1

char *devname = NULL;
lockdownd_get_device_name(client, &devname);
//lockdownd_get_device_name will use malloc exported from
//msvcrt.dll to allocate memory block for devname.
//Now you need to free this memory block.
//If you use free function directly you will get a asset error,
//since msvc link free which exported by msvcr[xx].dll, not msvcrt.dll
Myfree(devname); //right
example 2

plist_t array = NULL;
//...
uint32_t isize = plist_array_get_size(array);
char* pxml;
pxml = NULL;
plist_to_xml(array, &pxml, &isize);
//Here, this function alse use malloc exported from msvcrt.dll to
//allocate memory block.
Myfree(pxml);
ChangeLog
============
Jan 29, 2012
Update libplist-1.4 to libplist-1.8
Update usbmuxd-1.0.7 to latest master git (Until Jan 29)
Update libimobiledevice-1.1.1 to latest master git


Visit website
www.bingtech.net
or google - ilibimobile device for windows

flag Report DMCA
Review

Anonymous
Excellent job

Brown University





1271 Tutors

California Institute of Technology




2131 Tutors

Carnegie Mellon University




982 Tutors

Columbia University





1256 Tutors

Dartmouth University





2113 Tutors

Emory University





2279 Tutors

Harvard University





599 Tutors

Massachusetts Institute of Technology



2319 Tutors

New York University





1645 Tutors

Notre Dam University





1911 Tutors

Oklahoma University





2122 Tutors

Pennsylvania State University





932 Tutors

Princeton University





1211 Tutors

Stanford University





983 Tutors

University of California





1282 Tutors

Oxford University





123 Tutors

Yale University





2325 Tutors