【问题标题】:How I can add a cflag in cmake Android Studio?如何在 cmake Android Studio 中添加 cflag?
【发布时间】:2017-05-31 20:29:59
【问题描述】:

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

    externalNativeBuild {
        cmake {
            cppFlags ""
            cFlags "-D_FILE_OFFSET_BITS=64"
            arguments "-DANDROID_TOOLCHAIN=gcc"
        }
    }

【问题讨论】:

    标签: android-ndk cmake


    【解决方案1】:

    在 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 options 才能传递标志。

    例如:

        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
                }
            }
        }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 2016-07-27
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      相关资源
      最近更新 更多