【问题标题】:Linking error - Oculus Rift Libs on Qt and VS2013 (Linux - Windows)链接错误 - Qt 和 VS2013 上的 Oculus Rift 库(Linux - Windows)
【发布时间】:2014-05-10 11:35:52
【问题描述】:

一个星期以来我一直在处理这个错误,但我没有任何解决方案......

Linux - Qt Creator 5.2

我正在尝试在使用 Oculus Rift 库的 Qt 上制作程序,但尽管可以在 Qt 创建器上链接库,但不幸的是,我总是发现同样的错误。

我已经尝试了 3 种不同的方法来实现它,你可以在这里看到:

-直接链接到路径(方式2)

-使用 QtCreator 静态编译库并将输出链接到我的项目(方式 1)

-Qt Creator -> 项目(右键单击)-> 添加库 -> 库路径(方式 3)

这是我的 .pro 文件

QT       += core
QT       -= gui
TARGET = TestOVR3
CONFIG   += console
CONFIG   -= app_bundle
CONFIG += link_pkgconfig
PKGCONFIG += opencv
PKGCONFIG += x11
TEMPLATE = app

# Input Include
INCLUDEPATH += /home/why/Documents/OculusSDK/LibOVR/Include/

# Input Lib - Way 1
#LIBS+=  -L /home/why/Documents/Test/OVRLib/build-OVRLib-Desktop-Debug -lOVRLib

# Input Lib - Way 2
LIBS += -L /home/why/Documents/OculusSDK/LibOVR/Lib/Linux/Debug/x86_64/libovr.a

SOURCES += main.cpp

HEADERS += \
    Headers.h

# Input Lib - Way 3
#unix:!macx: LIBS += -L$$PWD/../../OculusSDK/LibOVR/Lib/Linux/Debug/x86_64/ -lovr

#INCLUDEPATH += $$PWD/../../OculusSDK/LibOVR/Lib/Linux/Debug/x86_64
#DEPENDPATH += $$PWD/../../OculusSDK/LibOVR/Lib/Linux/Debug/x86_64

#unix:!macx: PRE_TARGETDEPS += $$PWD/../../OculusSDK/LibOVR/Lib/Linux/Debug/x86_64/libovr.a

错误

我没有抄袭过去的所有内容,但它给了你一个想法。主文件由来自以下教程的基本教程组成:https://developer.oculusvr.com/

main.o: In function `Clear()':

/home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../TestOVR3/main.cpp:49: 未定义引用OVR::SensorFusion::~SensorFusion()' /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../TestOVR3/main.cpp:51: undefined reference toOVR::System::Destroy()' main.o: 在函数OVR::Allocator::GetInstance()': /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../../OculusSDK/LibOVR/Include/../Src/Kernel/OVR_Allocator.h:216: undefined reference toOVR::Allocator::pInstance' main.o:在函数“OVR::Log::ConfigureDefaultLog(unsigned int)”中: /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../../OculusSDK/LibOVR/Include/../Src/Kernel/OVR_Log.h:159:未定义的引用

有人有想法吗? :S

Visual Studio 2013 和 Qt 插件 VS2013

完全相同的错误:S

【问题讨论】:

  • 好吧,你没有显示代码,但是缺少析构函数的定义?此外,最后一行未完成。
  • @Nazar554:他在 Linux 上使用 QtCreator!

标签: c++ linux visual-studio qt oculus


【解决方案1】:

我相信你的问题源于这条线

LIBS += -L /home/why/Documents/OculusSDK/LibOVR/Lib/Linux/Debug/x86_64/libovr.a

-L(大写)选项指定搜索库的目录。您需要指定目录来查找 libovr.a,而不是静态库本身。然后,您将添加一个 -l 选项,在本例中为 -lovr 以指定要使用的库。

所以基本上你需要将该行更改为

LIBS += -L /home/why/Documents/OculusSDK/LibOVR/Lib/Linux/Debug/x86_64/

然后在某处添加(因为我不熟悉makefile的格式)

-lovr

可能有点晚了,但我昨天刚遇到这个问题,我想我会发帖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多