Я нахожусь на этой ошибке с недели, и у меня нет никаких решений …
Linux — Qt Creator 5.2
Я пытаюсь создать программу на Qt, которая использует библиотеки Oculus Rift, но, несмотря на все возможности связать библиотеку на Qt creator, я всегда нахожу одну и ту же ошибку, к сожалению.
Я попробовал 3 различных способа реализовать это, как вы можете видеть здесь:
—Прямая ссылка на путь (Способ 2)
—Скомпилируйте библиотеку в статическом режиме с помощью QtCreator и свяжите вывод с моим проектом. (Способ 1)
—Qt Creator -> Project (правый клик) -> Add Library -> Path to the Lib (Способ 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()'
ОВР :: System :: Destroy ()»
/home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../TestOVR3/main.cpp:51: undefined reference to
main.o: в функции OVR::Allocator::GetInstance()':
ОВР :: Allocator :: pInstance»
/home/why/Documents/Test/build-TestOVR3-Desktop-Debug/../../OculusSDK/LibOVR/Include/../Src/Kernel/OVR_Allocator.h:216: undefined reference to
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
Визуальная студия 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/
а затем добавить куда-нибудь (потому что я не знаком с форматом make-файлов)
-lovr
Это может быть немного поздно, но у меня вчера была эта проблема, и я решил опубликовать.