Linux系统编译Win32版本adb
源码版本:android 7.0
步骤1:source build/envsetup.sh
步骤2:lunch
步骤3:选择编译设备目标
步骤4:make adb USE_MINGW=y
下面是应对编译失败的对策:
错误:没有规则创建AdbWinApi.a
很奇葩的一个错误,即使手动拷贝至
out/host/windows-x86/obj32/STATIC_LIBRARIES/AdbWinApi_intermediates
也是无解
只好自己手动写Makefile,使用android源码里面的mingw工具链来编译了
1. 将out/host/windows-x86/obj32/STATIC_LIBRARIES/里面的静态库拷贝出来备用
2.书写makefile
all:adb CXX := android_source/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/bin/x86_64-w64-mingw32-g++ -m32
STRIP := android_source/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/bin/x86_64-w64-mingw32-strip
adb_version := edd2a148a60c-android
CFLAGS := \
-Wall -Werror \
-Wno-unused-parameter \
-DADB_REVISION='"$(adb_version)"' \
-D_GNU_SOURCE \
-DADB_HOST= \
-DHAVE_WINSOCK= \
-std=c++
INCLUDES := -I../include -I../base/include -Iandroid_source/development/host/windows/usb/api
LDLIBS := -L./lib -ladb -lbase -lcrypto_static -lcutils -llog -lAdbWinApi -lws2_32 -lgdi32 adb:adb_main.o console.o commandline.o adb_client.o services.o file_sync_client.o \
usb_windows.o sysdeps_win32.o get_my_path_windows.o
${CXX} $^ -o $@ ${LDLIBS}
${STRIP} $@
cp -f $@ $@.exe %.o:%.cpp
${CXX} $< -c -o $@ ${INCLUDES} ${CFLAGS} .PHONY:clean
clean:
rm -rf *.o
其中的lib文件夹保存的是上一步备用的静态库文件
android_source是android的源码目录,需要使用全路径
3. cd到adb所在目录执行
cd android_source/system/core/adb
make adb
Linux系统编译Win32版本adb的更多相关文章
- Linux系统CentOS6.2版本下安装JDK7详细过程
Linux系统CentOS6.2版本下安装JDK7详细过程 分类: Linux 2014-08-25 09:17 1933人阅读 评论(0) 收藏 举报 前言: java 是一种可以撰写 ...
- 带你领略Linux系统发展及版本更迭
Linux的出现是在1991年,Linus Torvalds的学生开发的,最初的Linux是类似Unix操作系统,可用于386,486或奔腾处理器的计算机上.Linus Torvalds是一个伟人,他 ...
- 关于windows和linux系统更换JDK版本后,修改环境变量也无法生效的原因和解决办法
今天遇到了一个问题: 我linux系统之前安装JDK12,今天将其改成了JDK1.8,并修改了环境变量,但是通过java -version命令显示的依旧是JDK12的版本. 这是因为,当使用安装版本的 ...
- linux 重新编译低版本gcc
编程实践中,可能会遇到需要较低版本gcc以兼容相应程序的需求,这时就需要我们将系统中默认的gcc版本较低,或者重新编译生成.(UBUNTU12.04下实现gcc4.2.3) 方法1: 对于UBUNTU ...
- 查看linux系统类型、版本、位数
如何查看LINUX操作系统是多少位的 方法1: 查看linux是不是64位的命令! file /sbin/init 结果会出来 xx bit 方法二: # getconf LONG_BIT32getc ...
- [linux系统]查看内核版本和系统版本方法
查看内核版本信息的两个命令: uname -a cat /proc/version 查看系统版本的命令: lsb_release -a more /etc/issue cat /etc/redhat- ...
- Linux系统如何查看版本信息
输入"uname -a ",可显示电脑以及操作系统的相关信息. 输入"cat /proc/version",说明正在运行的内核版本. 输入"c ...
- LFS,编译自己的Linux系统 - 编译临时系统
编译GCC-4.8.2 PASS 1 解压并重命名 cd /mnt/lfs/sources tar -Jxf ../mpfr-3.1.2.tar.xz mv mpfr-3.1.2 mpfr tar - ...
- 关于Linux系统下jdk版本切换问题(alternatives命令的使用)
[root@danny lib]# cd /usr/lib/jvm [root@danny jvm]# [root@danny jvm]# ls java java--openjdk-.b13.el7 ...
随机推荐
- Html之网页分屏浏览
Hi! Every Body!Welcome to my blog! My name is Caiduping,I hope we learn to make progress together! ...
- 安装GraphicsMagick
环境 CentOS7/CentOS7.1 x64 1.检查yum 2.检查是否安装zlib,下载地址:http://www.zlib.net/ 3.安装libpng,下载地址:http://www. ...
- TCP握手及状态图
为什么需要“三次握手”? 为了解决“网络中存在延迟的重复分组”的问题,即为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误. 例:“已失效的连接请求报文段”的产生在这样一种情况下:cli ...
- iOS笔记之线程
dispatch_after dispatch_after能让我们添加进队列的任务延时执行,比如想让一个Block在10秒后执行: var time = dispatch_time(DISPATCH_ ...
- 基于 React + NodeJS + Express + MongoDB 开发的一个社区系统
还可以, 功能挺全的, 可以作为react开发入门项目 链接 线上站点: 源码地址:
- ubuntu16切换hosts软件安装
之前用ubuntu切换hosts以为没有软件可用,直接用cp来替换hosts文件,今天网上搜了一下发现一个软件和window上用的切hosts功能一样,而且可以支持linux,mac,windows. ...
- Winform工具栏ToolStrip和状态栏StatusStrip
工具栏和状态栏的设置与前面的菜单基本相似 1.ToolStrip 从工具栏选项卡上拖一个放入窗体即可,位置也是通过其Dock设置的.先上一张图,红色部分就是工具栏,工具栏中可以放置如图下拉菜单中的Bu ...
- 1月中旬值得一读的10本技术新书(机器学习、Java、大数据等)!
1月中旬,阿里云云栖社区 联合 博文视点 为大家带来十本技术书籍(机器学习.Java.大数据等).以下为书籍详情,文末还有福利哦! 书籍名称:Oracle数据库问题解决方案和故障排除手册 内容简介 & ...
- Swift自定义头视图和尾视图
var data: [[String]]! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup a ...
- gradle 代理设置
可以对gradle全局设置变量,也可以针对单个项目进行配置. 只需要在.gradle目录下创建一个gradle.properties文件,文件中按照如下格式添加代理配置 systemProp.http ...