我该如何在Android Studio中使用cmake添加cflag?

4
我该如何在Cmake配置文件中添加-D_FILE_OFFSET_BITS=64。我试图在build.gradle中添加cflag,但它不起作用。
    externalNativeBuild {
        cmake {
            cppFlags ""
            cFlags "-D_FILE_OFFSET_BITS=64"
            arguments "-DANDROID_TOOLCHAIN=gcc"
        }
    }
1个回答

7
在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 ")

然而,您也可以使用 Gradle,但是externalNativeBuild需要在defaultConfigreleasedebug(构建风格)下,以便CMake选项能够传递标志。

例如:

    android {
        compileSdkVersion 25
        buildToolsVersion '25.0.3'
        defaultConfig {
            applicationId "..."
 
            externalNativeBuild {
                cmake {
                    // here, arguments, cppFlags, cFlags, ..  all work
                    arguments '-DANDROID_PLATFORM=android-15',
                            '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static',
                            '-DANDROID_CPP_FEATURES=rtti exceptions'
                }
            }
        }
        externalNativeBuild {
            cmake {
                // only 'path' variable is valid here
                path '../../gameSource/CMakeLists.txt'
            }
        }
        buildTypes {
            release {
               // .. release flavor
            }
            debug {
                //... debug flavor
            }
        }
    }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接