1
votes

I am stack on this error since a week and I don't have any solutions ...

Linux - Qt Creator 5.2

I am trying to make program on Qt which uses the Oculus Rift libs but despite all the possibilities to link a library on Qt creator, I always find the same error unfortunately.

I have tried 3 different ways to implement it as you can see here :

-Direct link to the path (Way 2)

-Compile the library in static with QtCreator and link the output to my project (Way 1)

-Qt Creator -> Project (right click) -> Add Library -> Path to the Lib (Way 3)

This is my .pro file

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

Error

I didn't copy past everything but it gives you an idea. The main file is composed of a basic tutorial from a tutorial available at : https://developer.oculusvr.com/

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

/home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../TestOVR3/main.cpp:49: undefined reference to OVR::SensorFusion::~SensorFusion()' /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../TestOVR3/main.cpp:51: undefined reference toOVR::System::Destroy()' main.o: In function 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: In function `OVR::Log::ConfigureDefaultLog(unsigned int)': /home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../../OculusSDK/LibOVR/Include/../Src/Kernel/OVR_Log.h:159: undefined reference to

Anyone has an idea ? :S

Visual studio 2013 & Qt Add-in VS2013

Exactly the same errors :S

1
Well, you have not shown the code, but missing the definition of the destructor? Also, the last line is unfinished.lpapp
@Nazar554: he is using QtCreator on Linux!lpapp

1 Answers

0
votes

I believe that your issue stems from the line

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

The -L (capital) option specifies the directory in which to search for libraries. You need to specify the directory to look for libovr.a, not the static library itself. Then afterwards you would add a -l option, in this case -lovr to specify the library to use.

So basically you need to change that line to

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

and then add somewhere (Because I'm not familiar with the format of makefiles)

-lovr

It might be a bit late, but I just had this problem yesterday and I figured I'd post.