[英]Linking error - Oculus Rift Libs on Qt and VS2013 (Linux - Windows)
一个星期以来我一直在解决这个错误,我没有任何解决方案...
Linux-Qt Creator 5.2
我正在尝试在使用Oculus Rift库的Qt上编写程序,但是尽管有所有可能链接Qt Creator上的库,但不幸的是,我总是发现相同的错误。
我尝试了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 to
未定义引用OVR::SensorFusion::~SensorFusion()' /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../TestOVR3/main.cpp:51: undefined reference to
OVR :: System :: Destroy()'main.o的OVR::SensorFusion::~SensorFusion()' /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../TestOVR3/main.cpp:51: undefined reference to
:在函数OVR::Allocator::GetInstance()': /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../../OculusSDK/LibOVR/Include/../Src/Kernel/OVR_Allocator.h:216: undefined reference to
OVR :: Allocator的OVR::Allocator::GetInstance()': /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../../OculusSDK/LibOVR/Include/../Src/Kernel/OVR_Allocator.h:216: undefined reference to
: :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
我相信您的问题源于
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
可能有点晚了,但是昨天我刚遇到这个问题,所以我想过要发布。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.