Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android makefile用于生成静态可执行文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在/ sbin中生成像adbd这样的可执行文件.

我希望拥有的可执行文件是具有ARM格式的iwlist,类型是静态的.

我在AndroidsourceCode / external中添加文件并执行“mm”命令进行编译

LOCAL_PATH := $(call my-dir)
ifneq ($(TARGET_SIMULATOR),truE)
include $(CLEAR_VARS)

LOCAL_MODULE := libiw

LOCAL_MODULE_TAGS := eng

LOCAL_SRC_FILES := iwlib.c

LOCAL_C_INCLUDE += LOCAL_PATH

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

#================================================
include $(CLEAR_VARS)
LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := iwlist.c

LOCAL_SHARED_LIBRARIES := libiw
LOCAL_MODULE := iwlist

include $(BUILD_EXECUTABLE)
#================================================

endif # !TARGET_SIMULATOR

上面的make文件实际上是通过生成iwlist可执行文件来工作的

iwlist: ELF 32-bit LSB executable,ARM,version 1 (SYSV),dynamically linked (uses
 shared libs),Stripped

但是,我正在寻找“静态链接”,我正在虑“LOCAL_FORCE_STATIC_EXECUTABLE:= true”这一行应该帮助我静态地生成这个可执行文件.

不幸的是,它没有.

如果你知道怎么做,请告诉我.

提前致谢.

解决方法

我有类似的问题,但我无法使用Android工具链静态链接任何文件.
你可以使用另一个工具链.我已经尝试过linaro的工具链,它工作正常.
你可以在这里下载:
https://wiki.linaro.org/WorkingGroups/ToolChain

我下载了4.7版本,解压缩到我主目录中的文件位置.
编译就像:

~/gcc-linaro-arm-linux-gnueabihf-2012.06-20120625_linux/bin/arm-linux-gnueabihf-gcc  -static -s Hello.c -o Hello

当然我建议你把bin目录放在你的路径中.

这将创建一个静态链接文件

# file Hello
Hello: ELF 32-bit LSB executable,statically linked,for GNU/Linux 2.6.31,Stripped

大佬总结

以上是大佬教程为你收集整理的Android makefile用于生成静态可执行文件全部内容,希望文章能够帮你解决Android makefile用于生成静态可执行文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。