如何使用C++;本机代码 我试图用Gradle C++的Android工作室建立的Android应用程序调用OpenGL ES 2的函数。
然而,当调用任何一个OpenGL函数时,我都会遇到链接器错误,而且我还没有找到原因 感觉它应该像以某种方式配置Gradle一样简单,但它只是不清楚如何做到这一点(特别是因为我几乎没有Gradle的经验) 我在以下Github位置为我的问题创建了一个非常简单的测试用例: 使用Android Studio打开该项目,您将看到未能链接到“native lib.cpp”文件中的代码 如果有人能够正确获得此建筑/链接,请让我知道我遗漏了什么如何使用C++;本机代码 我试图用Gradle C++的Android工作室建立的Android应用程序调用OpenGL ES 2的函数。,c++,android-studio,android-gradle-plugin,opengl-es-2.0,C++,Android Studio,Android Gradle Plugin,Opengl Es 2.0,然而,当调用任何一个OpenGL函数时,我都会遇到链接器错误,而且我还没有找到原因 感觉它应该像以某种方式配置Gradle一样简单,但它只是不清楚如何做到这一点(特别是因为我几乎没有Gradle的经验) 我在以下Github位置为我的问题创建了一个非常简单的测试用例: 使用Android Studio打开该项目,您将看到未能链接到“native lib.cpp”文件中的代码 如果有人能够正确获得此建筑/链接,请让我知道我遗漏了什么 谢谢 转到您的CMakeLists.txt,将GLESv2添加到
谢谢 转到您的CMakeLists.txt,将GLESv2添加到目标链接库中。应该是这样的:
# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in the
# build script, prebuilt third-party libraries, or system libraries.
target_link_libraries( # Specifies the target library.
native-lib
# Links the target library to the log library
# included in the NDK.
${log-lib}
GLESv2)
为什么不试试NDK官方的一个示例,hello-gl2你必须使用NDK build来构建cpp文件,这样cpp文件就可以作为一个静态库,Java将加载库来与之通信。谢谢@Sung,看着NDK示例,我找到了解决方法!谢谢你,安德拉斯-我实际上是通过看@Sung给我指的NDK例子来理解的,但我没有抽出时间来更新这个问题。你上面的答案正是我解决它的方法!