Externe Bibliothek löst undefinierte Referenzfehler in Qt Creator aus

Ich habe einige Probleme mit der Verwendung einer externen Bibliothek / eines externen SDK. Ich verwende Qt Creator unter Ubuntu mit dem Oculus Rift SDK. Das Oculus Rift SDK besteht aus einer plattformabhängigen lib-Datei und etwas C ++ - Quellcode. Beachten Sie, dass ich stark bezweifle, dass mein Problem in irgendeiner Weise spezifisch für das Oculus SDK oder Xinerama ist.

Ich habe den Assistenten verwendet und das SDK als externe Bibliothek hinzugefügt. Das war das Ergebnis:

unix:!macx: LIBS += -L$PWD/../OculusSDK/LibOVR/Lib/Linux/Release/x86_64/ -lovr
INCLUDEPATH += $PWD/../OculusSDK/LibOVR/Include
DEPENDPATH += $PWD/../OculusSDK/LibOVR/Include
unix:!macx: PRE_TARGETDEPS += $PWD/../OculusSDK/LibOVR/Lib/Linux/Release/x86_64/libovr.a

Jetzt sollte ich in der Lage sein, Methoden aus dem SDK aufzurufen. Dies ist jedoch einer der Fehler, die beim Kompilieren auftreten:

/home/me/OculusSDK/LibOVR/Lib/Linux/Release/x86_64/libovr.a(OVR_Linux_HMDDevice.o):-1: In function `OVR::Linux::HMDDeviceFactory::EnumerateDevices(OVR::DeviceFactory::EnumerateVisitor&)':
OVR_Linux_HMDDevice.cpp:-1: error: undefined reference to `XineramaIsActive'

Ich habe bereits versucht, diese Zeile zu meiner .pro-Datei hinzuzufügen, aber nichts hat sich geändert:

unix:LIBS += -lXinerama

Wenn ich die gleiche Header-Datei wie OVR_Linux_HMDDevice.cpp einbinde,

#include <X11/extensions/Xinerama.h>

Ich kann XineramaIsActive von meinem Code aus erfolgreich aufrufen. Anscheinend ist es nur der externe Quellcode, der Probleme beim Zugriff auf die Methode hat.

Irgendwelche Ideen, welche Änderungen ich am Erstellungsprozess vornehmen muss, damit dies funktioniert?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage