如何在Gradle中设置预处理器定义

时间:2016-12-22 14:01:31

标签: android android-ndk android-gradle

如果这是重复,我道歉,但我如何定义预处理器定义。在Visual Studio中,我可以转到C ++ - >预处理器并在那里设置定义列表。但是我在我的Android gradle版本中苦苦挣扎。

我需要定义DEBUG,以满足以下条件

#if (!defined(NDEBUG)) && (!defined(DEBUG))

我已尝试添加-DDEBUG,但这似乎无法奏效。我很难找到需要做什么的文档。

    cppFlags.addAll(["-fexceptions", "-std=gnu++11", "-DDEBUG"])

这是我的NDK构建块         //定义NDK构建         ndk {             moduleName" mymodule"

        toolchain = "clang"

        // If switching to GNU, here are the values to replace with
        stl "gnustl_shared"
        cppFlags.addAll(["-fexceptions", "-std=gnu++11", "-DDEBUG"])


        // when adding system library dependencies, they are added here
        ldLibs.addAll(["log","atomic"])

        // C include directories
        CFlags.addAll(["-I${file("src/main/jni/folder1")}".toString(),
                       "-I${file("src/main/jni/folder2")}".toString()
        ])

        // C++ include directories
        cppFlags.addAll(["-I${file("src/main/jni/morestuff")}".toString(),
        ])
    }

1 个答案:

答案 0 :(得分:2)

您似乎同时设置了CFlagscppFlags。您确定要将DEBUG标志添加到正确的标志吗?如果您正在处理共享库,则可能需要CFlags而不是cppFlags中的标记。

我会尝试将你的DEBUG标志添加到CFlags,看看是否有效:

CFlags.addAll(["-DDEBUG"])