如何在 cmake Android Studio 中添加 cflag?

str*_*eit 4 cmake android-ndk

我如何在 Cmake 配置文件中添加 -D_FILE_OFFSET_BITS=64 。我试图在 build.gradle 中添加 cflag 但它不起作用。

    externalNativeBuild {
        cmake {
            cppFlags ""
            cFlags "-D_FILE_OFFSET_BITS=64"
            arguments "-DANDROID_TOOLCHAIN=gcc"
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jam*_*oag 5

在 CMakeLists.txt 文件中,我执行以下操作:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__ANDROID__ -DANDROID -DCUSTOM_FLAG")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGL_GLEXT_PROTOTYPES=1 -DIOAPI_NO_64 -DUSE_FILE32API ")
Run Code Online (Sandbox Code Playgroud)

但是,您也可以使用 gradle,但externalNativeBuild需要在defaultConfigorreleasedebug(构建风格)下才能让cmake 选项传递标志。

例如:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__ANDROID__ -DANDROID -DCUSTOM_FLAG")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGL_GLEXT_PROTOTYPES=1 -DIOAPI_NO_64 -DUSE_FILE32API ")
Run Code Online (Sandbox Code Playgroud)