android - Android.mk 中的更改不更改库

标签 android makefile android-ndk java-native-interface

我正在尝试获取我的 Android.mk 文件来优化二进制文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := fred
LOCAL_SRC_FILES := fred.c
LOCAL_LDLIBS := -llog
LOCAL_CFLAGS = -O3
NDKDEBUG = 0

include $(BUILD_SHARED_LIBRARY)

然后我保存这个,然后运行

$NDK/ndk-build -B V=1

然后我在生成的库上运行 md5sum,它和用它构建的库没有区别

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := fred
LOCAL_SRC_FILES := fred.c
LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)

那么,我做错了什么?

编译器的输出似乎是:

/home/AStupidNoob/Documents/Android/android-ndk-r7b/toolchains/arm-linux-androideabi-
4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -MMD -MP -MF /home/AStupidNoob
/workspace/Fred/obj/local/armeabi/objs/fred/fred.o.d -fpic -ffunction-sections -funwind-
tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ 
-D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os 
-fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I/home/AStupidNoob
/workspace/Fred/jni -DANDROID -O3 -Wa,--noexecstack -O2 -DNDEBUG -g -I/home/AStupidNoob
/Documents/Android/android-ndk-r7b/platforms/android-4/arch-arm/usr/include -c  
/home/AStupidNoob/workspace/Fred/jni/fred.c -o /home/AStupidNoob/workspace/Fred/obj
/local/armeabi/objs/fred/fred.o

我不确定这是否可以,但似乎问题可能出在 3 个优化标志 -Os -O2 -O3 上,但我该如何解决这个问题?

谢谢!

最佳答案

查看 APP_OPTIM 变量。我在我的 Application.mk 文件中将我的设置为 release 以优化代码。 (我不确定你是否可以通过这种方式使用各种 -O# 选项获得你正在寻找的粒度,但至少你得到了一些东西。)

关于android - Android.mk 中的更改不更改库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11304670/

相关文章:

android - 安装错误: Unkown failure (android emulator)

Makefile - 从包含的文件中获取其自身的目录

Android NDK - 未找到库

android - 我的顶点只显示一个三角形?

android - 如何在 Android 中单击 ListView 中的按钮时获取自定义对话框 Activity ?

android - AsyncTask.onPostExecute() 的参数与实例变量

windows - 如何在 Windows 上安装 Make?

bash - 管道在 makefile 中不起作用

android - 生成 Android.mk 的工具

android - 如何将新的 .cpp 文件添加到 Android 的 c++ 库中,然后构建该库?