CMake - OpenVR 编译问题
Posted
技术标签:
【中文标题】CMake - OpenVR 编译问题【英文标题】:CMake - OpenVR compilation issues 【发布时间】:2019-10-12 15:34:23 【问题描述】:我目前正在重新设计我的游戏/渲染引擎。我正在跨平台进行操作,因此已切换到使用 CMake 构建过程。我在构建 GLFW 或 GLAD 时没有遇到任何问题,但在使用 openvr 时遇到了问题
目前这是一个相当基本的构建,但我对它相对较新
add_subdirectory(lib/openvr)
add_subdirectory(lib/glfw)
add_subdirectory(lib/glad)
target_link_libraries(flux glad glfw openvr_api64)
这一切都很好,可以包含标题等,但我得到了很多未解决的外部错误
__imp_VR_GetGenericInterface __imp_VR_IsInterfaceVersionValid __imp_VR_InitInternal2
等等……
我查看了存储库中的 CMakeLists 文件,但找不到任何我知道的内容https://github.com/ValveSoftware/openvr
任何输入都会很好
【问题讨论】:
可能,这些未解析的符号是在openvr_api64
库中定义的,但我没有在您的代码中看到与该库的链接。
target_link_libraries 调用中的 ... 有 openvr_api64,我应该更具体一点
好的,现在是时候对您的问题提供更详细的描述了:在问题中包含确切的错误消息。除其他外,该消息应包含链接文件的名称。 (理想情况下,我们希望在您的问题帖子中找到minimal reproducible example)。
【参考方案1】:
ValveSoftware/openvr 的当前 master 分支有一个损坏的构建,它有丢失的文件和错误的包含路径
TL;DR
ValveSoftware/openvr 的构建已损坏,请使用我的 fork 与固定构建: https://github.com/okawo80085/openvr
加长版
它在上一两个版本中被破坏了(idr)
当我开始让 openvr 成为我的驱动程序的适当 dep 以及解决此问题的最简单方法时,我自己遇到了这个问题(因为 Valve 已经有 6 个月以上没有修复它了,即使有为他们修复它的 PR 以及关于损坏的构建提出的问题)是 fork openvr 并自己修复它,这也是我最终做的事情
here is my fork - 它在openvr/libs/platformarchitecture
中有一个工作版本和一个相对最近为 Linux 构建的库,如果您要将其添加为子目录,请使用存储库根目录
【讨论】:
以上是关于CMake - OpenVR 编译问题的主要内容,如果未能解决你的问题,请参考以下文章