我最近需要在Android中将特定的build-id设置为elf文件。
首先,我像这样使用shell命令:
arm-linux-androideabi-gcc -pie -Wl,--build-id=0xFFFFFFFF --sysroot /home/chengyi/code/android_6.0.1_bullhead/prebuilts/ndk/9/platforms/android-18/arch-arm main.c
readelf -n a.out
.everthing没问题。
以上只是一个演示,我需要在last.here is my Android.mk的Android.mk中设置build-id:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
main.cpp
LOCAL_SHARED_LIBRARIES := \
liblog \
libdl \
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/ \
bionic \
LOCAL_MODULE:= a.out
LOCAL_CXXFLAGS := \
-pie -Wl,--build-id=0xFFFFFFFFFFFFFFFFFF --sysroot /home/chengyi/code/android_6.0.1_bullhead/prebuilts/ndk/9/platforms/android-18/arch-arm \
include $(BUILD_EXECUTABLE)
不管我怎么努力,输出的elf文件都有一个恒定的build-id。在Android.mk中有没有什么方法可以将特定的build-id设置为elf文件?
非常感谢你的帮助。
发布于 2016-08-09 12:35:51
如果您想通过Android.mk设置build-id。不要使用变量LOCAL_CXXFLAGS
或LOCAL_CFLAGS
。
build-id被发送给链接器,所以你需要像这样使用LOCAL_LDFLAGS
:
LOCAL_LDFLAGS += -Wl,--build-id=0xFFFFFFFFFFFFFF
https://stackoverflow.com/questions/38829287
复制相似问题