如何使用cmake设置LOCAL_CPPFLAGS / LOCAL_CFLAGS / LOCAL_LDFLAGS?我想减小大小,但是我阅读的教程都是关于mk文件的。我应该在cmakelists.txt中做什么?
我直接设置了LOCAL_CPPFLAGS / LOCAL_CFLAGS / LOCAL_LDFLAGS,但似乎不起作用。
set(LOCAL_CPPFLAGS "${LOCAL_CPPFLAGS} -ffunction-sections,-fdata-sections")
set(LOCAL_CFLAGS "${LOCAL_CFLAGS} -ffunction-sections,-fdata-sections")
set(LOCAL_LDFLAGS "${LOCAL_LDFLAGS} -Wl,--gc-sections,--icf=safe")
最佳答案
您应该可以使用以下方法做到这一点:
target_compile_options(mytarget PRIVATE -ffunction-sections -fdata-sections)
target_link_libraries(mytarget -Wl,--gc-sections,--icf=safe)
请注意,使用NDK的Clang时,默认情况下已将
-ffunction-sections
启用一段时间。而且,如果您使用的是NDK r19c或更高版本,我相信-fdata-sections
也是默认启用的。因此,只有链接器标志才是您显式指定所必需的。关于gradle - 如何在ndk中使用cmake设置LOCAL_LDFLAGS/LOCAL_CPPFLAGS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57175936/