如何使用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/

10-10 16:04