libimobiledevice --Mingw32交叉编译
本文只描述 windows环境下的使用情况,linux平台基本雷同。
一、配置编译环境.
(1)操作系统 :Windows10 (64bit).
(2)类unix环境:Cygwin(64bit) 下载路径:https://www.cygwin.com/setup-x86_64.exe。
(3)安装Cygwin ,注意:为防止有API Hook的行为导致 Cygwin出现异常,请在干净环境下使用。
流程如下:

网易开源镜像站 :http://mirrors.163.com/,找到cygwin并添加路径

安装 autoconf相关工具

安装mngw32环境

下一步,等待安装完成, 如果要安装cygwin自带的一些bash命令也可以按此方法行事(如:lynx、wget、apt-cyg、cmake等),
二、使用 cygwin自带的 i686-w64-mingw32 编译 libimobiledevice (https://github.com/libimobiledevice)
以下工程的默认安装目录都是在 /usr/local /目录下, 如需改动可以使用 configure的--prefix 自行配置
编译顺序:(由库之间的依赖性决定)
1、 libzip:由于Cygwin当前版本自带的包对于处理大于2G的文件有bug,所以我们要自己编译安装libzip.
(1): 编译安装前先卸载掉libzip. (命令 :apt-cyg remove mingw-i686-libzip)
(2):下载libzip源码 https://libzip.org/download/libzip-1.3.2.tar.gz. 解压.(命令 tar -zxvf libzip-1.3.2.tar.gz)
(3):进入解压目录, 执行配置命令 ./configure --host="i686-w64-mingw32" (关于 配置参数选项,可使用 configure --help查看)
(4):make ,成功后 make install .
2、libplist : git clone https://github.com/libimobiledevice/libplist.git
进入目录: ./autogen.sh --host=i686-w64-mingw32 --without-cython 成功,make 成功,make install
3、libusbmuxd: git clone https://github.com/libimobiledevice/libusbmuxd.git
进入目录: PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh --host=i686-w64-mingw32 成功,make 成功,make install
4、libimobiledevice : git clone https://github.com/libimobiledevice/libimobiledevice.git ( 需要 Openssl 或者GnuTLS)
进入目录: PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh --host=i686-w64-mingw32 --without-cython 成功,make 成功,make install
5、libirecovery:git clonehttps://github.com/libimobiledevice/libirecovery.git
进入目录: ./autogen.sh --host=i686-w64-mingw32 成功,make 成功,make install
6、idevicerestore :git clone https://github.com/libimobiledevice/idevicerestore.git
进入目录: PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh --host=i686-w64-mingw32 --without-cython 成功,make 成功,make install
上述步骤完毕后,将 /usr/i686-w64-mingw32/sys-root/mingw/bin 目录下的依赖库 dll拷贝到 /usr/local/bin 目录下即可。(运行相关exe 根据报错便可确定少了哪些dll.)
libimobiledevice --Mingw32交叉编译的更多相关文章
- Fedora 17下交叉编译vlc-2.0.6-win32小记
关于编译windows下的vlc网上的教程除了翻译N年前wiki官网的那些蚂蚁文之外,可以说基本没啥参考意义和价值.因为那些都是非常老的版本,0.8.x或者1.x.x,而我这个人有喜欢新鲜事儿,所以就 ...
- MinGW32和64位交叉编译环境的安装和使用
原文出处: CompileGraphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64 http://www.kinetic ...
- C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项
目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...
- vmware虚拟机下ubuntu 13.04使用zeranoe脚本交叉编译ffmpeg
2013-07-01今天是建党节,习总书记指出,党的建设要以“照镜子.正衣冠.洗洗澡.治治病”为总要求.希望我们的党越来越纯洁,为人民谋福利.言归正传,每次项目中需要编译相应的ffmpeg,都很费时费 ...
- QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
前两天入手了一块2.8’的tft液晶显示屏,于是和树莓派连了一发,成功将命令行显示在了这块小的可怜的屏幕上之后,觉得这屏幕就显示个黑白内容太浪费了,于是考虑开发一个”脸”(图形用户界面,GUI).首先 ...
- codeSourcery交叉编译环境
arm-none-Linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括 ...
- 基于Ubuntu交叉编译FFmpeg Windows SDK
写在前面 FFmpeg是一个开源且跨平台的音视频解决方案,集采集.转码.流式化为一身,项目的libavcodec编解码模块和libavformat媒体格式模块,支持非常非常丰富的编解码格式和容器封装格 ...
- 交叉编译调试qemu_guest_agent
Winodws版本 编译环境Fedora23 下载VSS SDK的setup.exe 下载地址 提取VSS SDK头文件 将下面的代码保存成extract-vsssdk-headers.sh脚本,然后 ...
- Linux主机上使用交叉编译移植u-boot到树莓派
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...
随机推荐
- SQL 的各种 join 用法
作者丨C.L. Moffatt http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins I am go ...
- Win7下设置护眼的电脑豆沙绿界面
控制面板\所有控制面板项\个性化\窗口颜色和外观 "色调"(Hue)设为85,"饱和度"(Sat)设为90,"亮度" (Lum)设为205. ...
- CVE-2013-2551
目录 小白的CVE-2013-2551 分析 & 利用 0xFF 前言 0x00 环境和工具 0x01 分析POC POC 调试 0x02 利用 构造R3任意内存读写 劫持eip 利用利用 0 ...
- 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...
- 【11】python 递归,深度优先搜索与广度优先搜索算法模拟实现
一.递归原理小案例分析 (1)# 概述 递归:即一个函数调用了自身,即实现了递归 凡是循环能做到的事,递归一般都能做到! (2)# 写递归的过程 1.写出临界条件 2.找出这一次和上一次关系 3.假设 ...
- Pre标签 自动换行
<pre> 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码 ...
- 【Android自动化】Subprocess.check_output()简单用法
# -*- coding:utf-8 -*- import os import sys import subprocess from uiautomator import device as d cm ...
- node学习笔记_02 API详解
一.知识点:url.parse方法 方法说明: 讲一个URL字符串转换成对象并返回. 语法:url.parse(urlStr, [parseQueryString], [slashesDenoteHo ...
- input file 美化
<input type='file'>的默认外观实在难看,绝大多数情况都需要对其美化.找了很多资料,目前发现以下方式是最简单的美化方式. 1.将file input用label包裹起来,然 ...
- JavaScript利用Date实现简单的倒计时实例
介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法.Date在js中和Array类似,都是拥有自己的特殊方法的特殊对象. 创建 Date 对象的语法: var my ...