Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中编译gstreamer应用程序时出错_Gstreamer_Petalinux - Fatal编程技术网

在Linux中编译gstreamer应用程序时出错

在Linux中编译gstreamer应用程序时出错,gstreamer,petalinux,Gstreamer,Petalinux,我正在尝试在petalinux中编译一个自定义gstreamer应用程序,其中包含以下头文件: #include <stdlib.h> #include <string.h> #include <gst/gst.h> #include <gio/gio.h> 但是在编译应用程序(petalinux build-cmyapp)时,我遇到了下一个错误: | myapp.c:25:10: fatal error: gst/gst.h: No such

我正在尝试在petalinux中编译一个自定义gstreamer应用程序,其中包含以下头文件:

#include <stdlib.h>
#include <string.h>
#include <gst/gst.h>
#include <gio/gio.h>
但是在编译应用程序(petalinux build-cmyapp)时,我遇到了下一个错误:

| myapp.c:25:10: fatal error: gst/gst.h: No such file or directory
|  #include <gst/gst.h>
|           ^~~~~~~~~~~
| compilation terminated.
有人知道我遗漏了什么,以及如何正确添加gstreamer路径进行编译吗

编辑

根据建议,我在配方中添加了DEPENDS行:

#
# This file is the myapp recipe.
#

SUMMARY = "Simple myapp application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://myapp .c \
       file://Makefile \
          "

S = "${WORKDIR}"

do_compile() {
         oe_runmake
}

do_install() {
         install -d ${D}${bindir}
         install -m 0755 myapp ${D}${bindir}
#
# This file is the myapp recipe.
#

SUMMARY = "Simple myapp application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://myapp .c \
       file://Makefile \
          "

S = "${WORKDIR}"

DEPENDS = "glib-2.0 gstreamer1.0"
RDEPENDS_${PN} = "gstreamer1.0-plugins-base gstreamer1.0-plugins-good"

do_compile() {
         oe_runmake
}

do_install() {
         install -d ${D}${bindir}
         install -m 0755 myapp ${D}${bindir}
但不幸的是,仍然给出了相同的错误…有什么想法可能是错误的/遗漏的吗


提前感谢。

我认为您没有找到编译代码所需的GStreamer包。让他们在图像上是不足以有这个食谱建设

您可以看看构建GStreamer()的RTSP服务器的方法

dependens=“gstreamer1.0 gstreamer1.0-plugins-base”


我认为您缺少了指向编译代码所需的GStreamer包的依赖项。让他们在图像上是不足以有这个食谱建设

您可以看看构建GStreamer()的RTSP服务器的方法

dependens=“gstreamer1.0 gstreamer1.0-plugins-base”


我终于让它工作了,我所做的是使用makefile来编译,是使用配方,更重要的是添加
inherit pkgconfig
行,以便在编译期间强制填充sysroot,这是最终的工作配方,希望它能帮助其他有同样问题的人:

    #
    # This file is the myapp recipe.
    #

    SUMMARY = "Simple myapp application"
    SECTION = "PETALINUX/apps"
    LICENSE = "MIT"
    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

    SRC_URI = "file://myapp .c \
           file://Makefile \
              "

    S = "${WORKDIR}"

    DEPENDS = "glib-2.0 gstreamer1.0"
    RDEPENDS_${PN} = "gstreamer1.0-plugins-base gstreamer1.0-plugins-good"

    inherit pkgconfig 

    do_compile() {
             ${CC} ${WORKDIR}/myapp.c -o myapp ${CFLAGS} ${LDFLAGS} `pkg-config --cflags --libs gstreamer-1.0` 
    }

    do_install() {
             install -d ${D}${bindir}
             install -m 0755 myapp ${D}${bindir}
    }

我终于让它工作了,我所做的是使用makefile来编译,是使用配方,更重要的是添加
inherit pkgconfig
行,以便在编译期间强制填充sysroot,这是最终的工作配方,希望它能帮助其他有同样问题的人:

    #
    # This file is the myapp recipe.
    #

    SUMMARY = "Simple myapp application"
    SECTION = "PETALINUX/apps"
    LICENSE = "MIT"
    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

    SRC_URI = "file://myapp .c \
           file://Makefile \
              "

    S = "${WORKDIR}"

    DEPENDS = "glib-2.0 gstreamer1.0"
    RDEPENDS_${PN} = "gstreamer1.0-plugins-base gstreamer1.0-plugins-good"

    inherit pkgconfig 

    do_compile() {
             ${CC} ${WORKDIR}/myapp.c -o myapp ${CFLAGS} ${LDFLAGS} `pkg-config --cflags --libs gstreamer-1.0` 
    }

    do_install() {
             install -d ${D}${bindir}
             install -m 0755 myapp ${D}${bindir}
    }

谢谢你的回答,我添加了depens行,但不幸的是仍然不起作用,我用新配方编辑了我的问题。谢谢你的回答,我添加了depens行,但不幸的是仍然不起作用,我用新配方编辑了我的问题。我不确定这会对你有多大帮助,但是GStreamer提供了一个模板来开始构建应用程序。请注意,自动工具可能是为了介子而放弃的。感谢vermaete,我已经有了这个应用程序,它正在工作,我只需要编译并将它添加到petalinux项目中。好吧,问题的解决方案可能在makefile中,而不是bb配方中。不管怎么说,我以为GStreamer离开了自动工具,搬到了介子。大多数yocto配方都是为介子构建和维护的。是的,这可能要归功于makefile,但是我如何添加路径才能编译基本的gstreamer应用程序呢?我甚至尝试在配方中直接编译,添加了以下行(而不是oe_runmake):${CC}${WORKDIR}/http-launch.c-o http-launch${CXXFLAGS}${LDFLAGS}pkg-config--cflags--libs-gstreamer1.0,仍然是同一个错误,我真的对此感到迷茫,任何线索/帮助都会非常感激,我不确定它会对您有多大帮助,但是GStreamer提供了一个模板来开始构建应用程序。请注意,自动工具可能是为了介子而放弃的。感谢vermaete,我已经有了这个应用程序,它正在工作,我只需要编译并将它添加到petalinux项目中。好吧,问题的解决方案可能在makefile中,而不是bb配方中。不管怎么说,我以为GStreamer离开了自动工具,搬到了介子。大多数yocto配方都是为介子构建和维护的。是的,这可能要归功于makefile,但是我如何添加路径才能编译基本的gstreamer应用程序呢?我甚至尝试在配方中直接编译,添加了以下行(而不是oe_runmake):${CC}${WORKDIR}/http launch.c-o http launch${CXXFLAGS}${LDFLAGS}pkg config--cflags--libs gstreamer1.0,但仍然是同一个错误,我真的很迷茫,任何线索/帮助都将不胜感激
    #
    # This file is the myapp recipe.
    #

    SUMMARY = "Simple myapp application"
    SECTION = "PETALINUX/apps"
    LICENSE = "MIT"
    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

    SRC_URI = "file://myapp .c \
           file://Makefile \
              "

    S = "${WORKDIR}"

    DEPENDS = "glib-2.0 gstreamer1.0"
    RDEPENDS_${PN} = "gstreamer1.0-plugins-base gstreamer1.0-plugins-good"

    inherit pkgconfig 

    do_compile() {
             ${CC} ${WORKDIR}/myapp.c -o myapp ${CFLAGS} ${LDFLAGS} `pkg-config --cflags --libs gstreamer-1.0` 
    }

    do_install() {
             install -d ${D}${bindir}
             install -m 0755 myapp ${D}${bindir}
    }