- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开展一个项目,我需要读取 Oculus Rift DK2 传感器。我在网上搜索了可用的示例,遗憾的是我能找到的唯一示例导致我在 SDK 版本等方面遇到很多麻烦。我找到了一个教程,介绍如何实现一些基本的 C++ 代码来读取俯仰、滚动和偏航。我使用的是 Windows V1.8.0 的 SDK。
#include "stdafx.h"
#include <iostream>
#include "../../OculusSDK/LibOVR/Include/OVR_CAPI.h"
#include <thread>
#include <iomanip>
#define COLW setw(15)
using namespace std;
int main()
{
// Initialize our session with the Oculus HMD.
if (ovr_Initialize(nullptr) == ovrSuccess)
{
ovrSession session = nullptr;
ovrGraphicsLuid luid;
ovrResult result = ovr_Create(&session, &luid);
if (result == ovrSuccess)
{ // Then we're connected to an HMD!
// Let's take a look at some orientation data.
ovrTrackingState ts;
while (true)
{
ts = ovr_GetTrackingState(session, 0, true);
ovrPoseStatef tempHeadPose = ts.HeadPose;
ovrPosef tempPose = tempHeadPose.ThePose;
ovrQuatf tempOrient = tempPose.Orientation;
cout << "Orientation (x,y,z): " << COLW << tempOrient.x << ","
<< COLW << tempOrient.y << "," << COLW << tempOrient.z
<< endl;
// Wait a bit to let us actually read stuff.
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
ovr_Destroy(session);
}
ovr_Shutdown();
// If we've fallen through to this point, the HMD is no longer
// connected.
}
return 0;
}
(据我所知)这部分没有问题。
当我包含 OVR_CAPI.h 时,OVR_CAPI.cpp 神奇地出现在 OVR_CAPI.h 所在的文件夹中。此 cpp 文件包含以下内容:
#include "stdafx.h"
#include "OVR_CAPI.h"
OVR_PUBLIC_FUNCTION(ovrResult) ovr_Initialize(const ovrInitParams * params)
{
return OVR_PUBLIC_FUNCTION(ovrResult)();
}
当我尝试构建它时出现错误:"expected an expression"和 "C2062(type 'int' unexpected)"都出现在第 6 行。有没有人熟悉这个问题,或者有人可以给我关于如何开始使用 Oculus 软件的建议吗?
最佳答案
您已经包含了 LibOVR 的来源。您必须在 visual studio 中将 LibOVR 编译为 .lib 文件,然后将其添加到您的项目中。
在LibOVR 文件夹中,应该有一个“Projects 文件夹”。打开适用于您的 Visual Studio 版本的版本。
编译 LibOVR 项目(在 Release模式下),这应该不会出现任何错误。如果是这样,库可能已损坏。尝试从 oculus 网站重新下载源代码或尝试其他版本。
成功后,将构建文件夹和“Include”文件夹中的 LibOVR.lib 文件复制到您自己的项目中(我建议在您的项目目录中创建一个新的“libs”文件夹)。
关闭 LibOVR 项目并打开您自己的项目。打开项目的属性窗口,在 VC++ 目录中将“Include”文件夹添加到“Include Directories”。还将.lib 文件所在的文件夹添加到“库目录”。
最后,在“Linker->Input”设置中将 LibOVR.lib 添加到“Additional Dependencies”(如果您还没有的话)。
将此添加到您的 main.cpp 文件
#include <OVR_CAPI.h>
尝试编译您的项目。现在一切都应该正常了。
关于c++ - Oculus OVR_CAPI.cpp 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40133381/
我目前正在开展一个项目,我需要读取 Oculus Rift DK2 传感器。我在网上搜索了可用的示例,遗憾的是我能找到的唯一示例导致我在 SDK 版本等方面遇到很多麻烦。我找到了一个教程,介绍如何实现
我是一名优秀的程序员,十分优秀!