2017-11-20 2 views
0

Ich versuche, eine C++ - Anwendung mit Gstreamer mit CMake zu erstellen. In meiner CMakeLists.txt Datei, GStreamer ist mit den folgenden Zeilen enthalten:Schwerwiegender Fehler: gst/gst.h: Keine solche Datei oder Verzeichnis (mit CMake)

find_package(PkgConfig REQUIRED) 

pkg_search_module(GST REQUIRED gstreamer-1.0>=1.4 
    gstreamer-sdp-1.0>=1.4 
    gstreamer-video-1.0>=1.4 
    gstreamer-app-1.0>=1.4) 

ich cmake ohne Fehler ausführen können, aber make gibt den folgenden Fehler:

fatal error: gst/gst.h: No such file or directory

GStreamer installiert ist, und ich habe überprüft, dass die gst.h-Datei zusammen mit den anderen gstreamer-Headerdateien unter /usr/include/gstreamer-1.0/gst/gst.h liegt.

Die folgenden Umgebungsvariablen gesetzt wurde:

export PKG_CONFIG_PATH=/opt/qt-5.9.1/lib/pkgconfig 
export LD_LIBRARY_PATH=/opt/qt-5.9.1/lib 
export GST_PLUGIN_PATH=/usr/include/gstreamer-1.0 

ich auch die Ausgabe von pkg-config überprüft habe, mit ähnlichem Problem in einem anderen Beitrag vorgeschlagen:

$ pkg-config --cflags gstreamer-1.0 
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/x86_64-linux-gnu/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/x86_64-linux-gnu/glib-2.0/include 

warum kann‘So t die gstreamer-Header-Datei gefunden werden?

(Ich bin neu sowohl gstreamer und CMake)

+1

'pkg_search_module' Variablen setzt Das enthält Verzeichnisse und andere Dinge über die Bibliotheken. Hast du diese Variable in deiner 'CMakeLists.txt' verwendet? Siehe [that my post] (https://stackoverflow.com/questions/35457533/findpkgconfig-with-set-target-properties-is-unusable-for-setting-cflags-ldflags/35476270#35476270) über die Verwendung von pkg- Konfigurationsvariablen in CMake. – Tsyvarev

Antwort

2

Ich stellte sich heraus, eigentlich nicht die Bibliotheken der Anwendung verknüpfen. Hinzufügen der folgenden zwei Zeilen in die CMakeLists.txt FIXED (macht bei sonst jemand den gleichen Fehler wie ich) der Fehler:

target_include_directories(videoDemo PRIVATE ${GST_INCLUDE_DIRS}) 
target_link_libraries(videoDemo ${GST_LIBRARIES}) 

(videoDemo ist der Name der Anwendung)

Verwandte Themen