如何在cmake Android Studio中添加cflag? [英] How I can add a cflag in cmake Android Studio?

查看:223
本文介绍了如何在cmake Android Studio中添加cflag?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How I can add -D_FILE_OFFSET_BITS=64 in Cmake config file. I'm trying to add as cflag in build.gradle but it not work.

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

推荐答案

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

In the CMakeLists.txt file, I do something like:

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,但

However, you can use gradle too, but externalNativeBuild needs to be under defaultConfig or release or debug (a build flavor) for cmake options to pass the flags.

例如:

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

这篇关于如何在cmake Android Studio中添加cflag?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆