C++ 链接错误-Qt和VS2013(Linux-Windows)上的Oculus Rift Libs
一个星期以来我一直在纠结这个错误,我没有任何解决办法 Linux-Qt Creator 5.2 我试图在Qt上制作一个使用Oculus Rift libs的程序,但尽管有各种可能在Qt creator上链接一个库,但不幸的是,我总是发现同样的错误 我尝试了3种不同的方法来实现它,如您在这里看到的: -直接链接到路径(路径2) -使用QtCreator以静态方式编译库,并将输出链接到我的项目(方式1) -Qt创建者->项目(右键单击)->添加库->库路径(方式3) 这是我的.pro文件C++ 链接错误-Qt和VS2013(Linux-Windows)上的Oculus Rift Libs,c++,linux,visual-studio,qt,oculus,C++,Linux,Visual Studio,Qt,Oculus,一个星期以来我一直在纠结这个错误,我没有任何解决办法 Linux-Qt Creator 5.2 我试图在Qt上制作一个使用Oculus Rift libs的程序,但尽管有各种可能在Qt creator上链接一个库,但不幸的是,我总是发现同样的错误 我尝试了3种不同的方法来实现它,如您在这里看到的: -直接链接到路径(路径2) -使用QtCreator以静态方式编译库,并将输出链接到我的项目(方式1) -Qt创建者->项目(右键单击)->添加库->库路径(方式3) 这是我的.pro文件 QT
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
错误
我没有抄袭过去的一切,但它给了你一个想法。主文件由教程中的基本教程组成,教程位于:
/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:对
OVR::System::Destroy()的未定义引用
main.o:在函数OVR::Allocator::GetInstance()中:
/home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../../../OculusSDK/LibOVR/Include/../Src/Kernel/OVR_分配器。h:216:未定义对
OVR::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:未定义对
有人有主意吗
Visual studio 2013和Qt插件VS2013
完全相同的错误:我相信你的问题源于这一行
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
可能有点晚了,但我昨天刚刚遇到这个问题,我想我应该发布。好吧,您没有显示代码,但缺少析构函数的定义?还有,最后一行没有完成。@Nazar554:他正在Linux上使用QtCreator!
main.o: In function `Clear()':