如何将 OpenXR 添加到现有的 Android OpenGLES 原生 C++ 项目?

问题描述 投票:0回答:1

我正在尝试将 OpenXR 添加到我开发的游戏中(自定义 OpenGL C++ 游戏引擎),但我似乎不知道如何为 Android Studio 构建和链接 OpenXR 库。我已经尝试了我能想到的一切,但不可否认,我不是 CMake 专家,也无法在任何地方找到足够的说明,而且我在网上找到的示例 OpenXR 项目已经过时,无法编译。

这就是我尝试过的:


我首先将以下内容添加到我的应用程序 build.gradle 文件中:

implementation 'org.khronos.openxr:openxr_loader_for_android:1.1.41'

这似乎下载了一些东西,但我不知道是什么或在哪里,而且这似乎不会自动添加 C++ 代码所需的包含路径。我在代码中添加了以下包含指令(从网上找到的示例复制),但找不到文件:

#include <openxr/openxr.h>
#include <openxr/openxr_platform.h>
#include <openxr/openxr_reflection.h>

由于这不起作用,我从 build.gradle 文件中删除了“实现”行,而是尝试直接访问源代码:

我从这里克隆了 OpenXR SDK 源:https://github.com/KhronosGroup/OpenXR-SDK 并将其放入我的项目中的“lib/openxr”文件夹中。

然后,我将以下内容添加到项目的 C++ 部分的 CMakeLists.txt 文件中:

add_subdirectory(lib/openxr lib/build/lib/android/openxr)
include_directories(lib/openxr/include)
target_link_libraries(
  [project name]
  openxr-gfxwrapper
  [...]
)

据我所知,“openxr-gfxwrapper”是库的名称,但它说找不到。我还尝试了在 CMakeLists.txt 文件中找到的其他几个名称,但它们都不起作用。我还尝试将 'add_subdirectory(lib/openxr [...])' 替换为 'add_subdirectory(lib/openxr/src [...])' 但这也不起作用。


我花了几个小时在网上搜索如何为 Android 构建这个,但找不到任何有效的东西。任何帮助将不胜感激,谢谢! :)

android c++ cmake opengl-es openxr
1个回答
0
投票

您需要通过编辑

build.gradle
(
.kts
) 来启用预制件,如下所示:

android {
  buildFeatures {
    prefab = true
  }
}

在 CMakeLists.txt 中,您现在可以执行以下操作:

find_package(OpenXR REQUIRED CONFIG)
target_link_libraries(${CMAKE_PROJECT_NAME}
        OpenXR::openxr_loader)
© www.soinside.com 2019 - 2024. All rights reserved.