• 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

     1 all:adb
     2 
     3 CXX := android_source/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/bin/x86_64-w64-mingw32-g++ -m32
     4 STRIP := android_source/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/bin/x86_64-w64-mingw32-strip
     5 adb_version := edd2a148a60c-android
     6 CFLAGS := 
     7     -Wall -Werror 
     8     -Wno-unused-parameter 
     9     -DADB_REVISION='"$(adb_version)"' 
    10     -D_GNU_SOURCE 
    11     -DADB_HOST=1 
    12     -DHAVE_WINSOCK=1 
    13     -std=c++11
    14 INCLUDES := -I../include -I../base/include -Iandroid_source/development/host/windows/usb/api
    15 LDLIBS := -L./lib -ladb -lbase -lcrypto_static -lcutils -llog -lAdbWinApi -lws2_32 -lgdi32 
    16 
    17 adb:adb_main.o console.o commandline.o adb_client.o services.o file_sync_client.o 
    18         usb_windows.o sysdeps_win32.o get_my_path_windows.o
    19     ${CXX} $^ -o $@ ${LDLIBS}
    20     ${STRIP} $@
    21     cp -f $@ $@.exe
    22 
    23 %.o:%.cpp
    24     ${CXX} $< -c -o $@ ${INCLUDES} ${CFLAGS} 
    25 
    26 .PHONY:clean
    27 clean:
    28     rm -rf *.o

    其中的lib文件夹保存的是上一步备用的静态库文件

    android_source是android的源码目录,需要使用全路径

    3. cd到adb所在目录执行

        cd android_source/system/core/adb

        make adb

  • 相关阅读:
    (原创)monitor H3C switch with cacti
    (原创)monitor Dell Powerconnec 6224 with cacti
    (转载)运行主机管理在openvswitch之上
    图片鼠标滑动实现替换
    分布式缓存(一)失效策略和缓存问题击穿,雪崩,穿透
    Spring 事务源码学习
    FactoryBean和BeanFactory
    Spring AOP 源码学习
    “两地三中心”和“双活”
    安装 geopandas 步骤
  • 原文地址:https://www.cnblogs.com/jojodru/p/6430379.html
Copyright © 2020-2023  润新知