将Android下的可执行文件以静态库的形式进行编译

本文介绍如何通过简单修改Android.mk文件,实现toolbox的静态链接编译。这种方法同样适用于Android平台上的其他可执行文件,使其能够被移植到普通Linux系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里以toolbox为例,只需要稍加修改Android.mk就可以编译出一个静态链接的toolbox。以下diff文件就是改动信息。

diff --git a/system/core/toolbox/Android.mk b/system/core/toolbox/Android.mk
index 086ba0d..d5aef3b 100755
--- a/system/core/toolbox/Android.mk
+++ b/system/core/toolbox/Android.mk
LOCAL_SRC_FILES := \
        grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c

  LOCAL_SHARED_LIBRARIES := libcutils libc libusbhost
+LOCAL_STATIC_LIBRARIES   := libcutils libc libusbhost

  LOCAL_C_INCLUDES := bionic/libc/bionic

  LOCAL_C_INCLUDES += external/libselinux/include

 endif

+LOCAL_FORCE_STATIC_EXECUTABLE := true
  LOCAL_MODULE := toolbox

 # Including this will define $(intermediates).

然后进行编译就自动编译成了静态链接的了。

$ file out/target/product/xxx/system/bin/toolbox
out/target/product/xxx/system/bin/toolbox: ELF 32-bit LSB executable, ARM, \
version 1 (SYSV), statically linked, stripped
由这里我们可以想到对于Android下的可执行文件,只需按照相同的方法将该Andoird.mk进行修改一下,就可以移植到普通的Linux系统了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值