如何使用 GStreamer 编译 C/C++ 程序

如何使用 GStreamer 编译 C/C++ 程序

我正在尝试编译此代码:

#include <stdio.h>
#include <stdlib.h>
#include <gst/gst.h>

int main (int   argc,
      char *argv[])
{
  const gchar *nano_str;
  guint major, minor, micro, nano;

  gst_init (&argc, &argv);

  gst_version (&major, &minor, &micro, &nano);

  if (nano == 1)
    nano_str = "(CVS)";
  else if (nano == 2)
    nano_str = "(Prerelease)";
  else
    nano_str = "";

  printf ("This program is linked against GStreamer %d.%d.%d %s\n",
          major, minor, micro, nano_str);

  return 0;
}

当我在终端中使用此命令时:

libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-1.0` -o main main.c

我收到此错误:

Package gstreamer-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gstreamer-1.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gstreamer-1.0' found
libtool: link: gcc -o main main.c

还有这个错误:

main.c:3:21: fatal error: gst/gst.h: No such file or directory

但是我已经使用 apt-get 安装了 GStreamer 1.0 和 libtool。您知道我应该从哪里开始吗?我在整个互联网上搜索答案,但没有人知道答案。

答案1

gst/gst.h由提供libgstreamer1.0-dev.安装它:

sudo apt-get install libgstreamer1.0-dev

在 Code::Blocks 中,您可以设置自定义包含位置和链接器标志。在项目菜单,点击构建选项在此处输入图片描述

答案2

对于使用 Eclipse 的用户,您应该执行以下操作在 Eclipse 内部创建项目:

右键单击项目名称并选择属性。在 C/C++ Build 下,选择 Settings。

  1. 在工具设置下,打开 GCC C 编译器并选择杂项。将以下内容添加到其他标志文本框中:

    `pkg-config --cflags gstreamer-1.0` -fPIC
    
  2. 在工具设置下,打开 GCC C++ Linker 并选择杂项。将以下内容添加到链接器标志文本框中:

    `pkg-config --libs gstreamer-1.0 gobject-2.0 glib-2.0`
    
  3. 在工具设置下,打开 GCC C++ Linker 并选择库。在库部分下添加 gstreamer-1.0、gobject-2.0 和 glib-2.0。

您的应用程序应该可以成功编译和链接。

相关内容