c++ - 如何在gradle native 项目中包含二进制库?

标签 c++ gradle

如果要添加一些二进制库,则必须在gradle.build文件中添加以下内容:

.
├── include
│   └── another.hh
├── lib
│   └── libanother.so
└── share

最佳答案

您需要在gradle.build文件中添加几行来定义cpp支持和一些标志以及所支持的平台。

 externalNativeBuild {
        cmake {
            cppFlags ""
        }
    }
    ndk { // these platforms cover 99% percent of all Android devices
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }

    externalNativeBuild {
        cmake {
            arguments '-DANDROID_PLATFORM=android-16', '-DANDROID_TOOLCHAIN=clang', '-DANDROID_ARM_NEON=TRUE', '-DANDROID_STL=c++_static', "-DPATH_TO_YOURSDKNAME:STRING=${your_sdk_path}"
            cFlags '-O3', '-fsigned-char' // full optimization, char data type is signed
            cppFlags '-fsigned-char', "-I${your_sdk_path}"
        }
    }

您还需要定义CMake文件的路径(负责构建),例如
externalNativeBuild {
    cmake {
        path "CMakeLists.txt"
    }
}

我建议您仔细阅读this,尤其是配置CMake和链接gradle部分。
希望这可以帮助!

关于c++ - 如何在gradle native 项目中包含二进制库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59043053/

相关文章:

c++ - 为了成为一名 C++ 程序员,我应该始终使用 std::vector 而不是创建自己的链表吗?

c++ - ClCompile 和 Emscripten

c++ - 在 do-while 循环中同时检查两个条件

intellij-idea - 在 IntelliJ IDEA 中运行测试时出现 java.lang.NoSuchMethodError

spring - 无法将参数从Gradle命令行传递到Spring项目(不是Boot)

c++ - 我应该为我的应用程序和库使用智能指针吗?

c++ - GCC -Wconversion 与否定一起发出警告,但不会发出其他警告

android - ionic 运行失败

gradle - 如何在Android Studio中使用我自己的Android.mk文件

java - Maven-publish gradle插件跳过版本