【发布时间】:2022-12-14 08:55:56
【问题描述】:
我正在尝试使用 OpenXR 创建本机 HoloLens 2 C++ 应用程序。在 Microsoft OpenXR-MixedReality 示例中,我发现了XrSceneLib_uwp配置类型设置为的项目静态库 (.lib)在 Visual Studio 属性中。据此,我尝试将它作为一个库添加到我的解决方案中,该解决方案中还有一个核心应用程序 (C++/WinRT),我想在其中使用来自XrSceneLib_uwp.在我看来,这是有道理的,因为我可以使用库来轻松创建全息标题场景。这里的问题是,当我构建我的解决方案时,我遇到了链接器错误,而且我不知道如何修复它们。我对 Visual Studio 也比较陌生(在我的例子中是 22 个),很可能我只是在链接过程中做错了。
尝试构建时出现链接器错误:
错误 LNK2019 未解析的外部符号 xrGetInstanceProcAddr 在函数“public: __cdecl ‘匿名命名空间’::ImplementXrApp::ImplementXrApp(struct engine::XrAppConfiguration)”中引用 (??0ImplementXrApp@?A0x934f03db@@QEAA@UXrAppConfiguration@engine@@@Z) CoreApp3 \repos\CoreApp3\CoreApp3\XrSceneLib_uwp.lib(XrApp.obj) 1
这是我所做的:
- 我复制并粘贴共享和openxr_preview我项目文件夹中 OpenXR-MixedReality .zip 文件中的文件夹。
- 添加XrSceneLib_uwp.vcxproj在 /shared/XrSceneLib 作为我的解决方案的现有项目。
- 添加复制的路径共享和openxr_preview中的文件夹属性->配置属性->C/C++->常规->附加包含目录.
- 还添加路径XrSceneLib_uwp.vcxproj在附加包含目录在我的主要项目(CoreApp)中。
- 在 CoreApp 中添加对 XrSceneLib_uwp 的引用(添加->参考->项目).
之后一切正常,我什至可以构建解决方案。但是当我尝试使用该库时,我遇到了这些链接器错误。我不明白为什么它在 OpenXR-MixedReality 示例中有效,但当我尝试在不同的项目中实现它时却无效。我错过了什么?我假设 XrSceneLib 可能没有被设计为在其他项目中外部使用,但同时我认为它应该以某种方式成为可能。
我也尝试添加额外的图书馆目录和丢失的目标文件,但要么我做错了什么,要么根本不起作用。
我真的很感激任何帮助。
【问题讨论】:
-
请将您的“链接错误”作为引用文本而不是图片发布。
-
我添加了共享文件夹和openxr_preview将示例解决方案中的文件夹添加到新解决方案中,并手动添加附加包含目录为了XrSceneLib_uwp,SampleShared_uwp,pbr_uwp和Gltf-uwp,那么这个解决方案就可以构建成功了。由于此过程繁琐且容易遗漏,因此建议您直接在示例解决方案中创建您的项目。我们将进行更多测试,并会在有任何更新时通知您。