GStreamer:与头相关的编译错误gst-interfaces包

时间:2011-03-05 21:41:15

标签: c compilation gstreamer glib gobject

我是一个相对较新的程序员,如果这是一个相当愚蠢的问题,请原谅我。

我刚刚写了一个中等规模的程序,我在编译时遇到了一些麻烦。 我的包括这样:

#include <glib.h>
#include <glib-object.h>
#include <X11/Xlib.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <gst/gst.h>
#include <gst/interfaces/xoverlay.h>

还有一些其他自定义头文件(两个,对于我正在使用的几个GObject)

我正在尝试使用以下命令行:

gcc -Wall (my source files) -o (my output) `pkg-config --cflags --libs gdk gtk+-2.0 glib-2.0 gobject-2.0 gstreamer-0.10  x11`

我得到很多编译错误(远远超过1000),所有这些都与我正在使用的库有关。 他们中的大多数看起来像:

/usr/include/glib-2.0/gobject/gtype.h:367: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'typedef'

/usr/include/glib-2.0/gobject/gobject.h:199: error: expected ')' before '*' token

/usr/include/glib-2.0/gobject/gsignal.h:262: error: expected declaration specifiers or '...' before 'GSignalFlags'

等等,等等。

非常感谢任何帮助。我确定这是一种愚蠢的错误,无论是链接还是包含,但我无法弄明白。

3 个答案:

答案 0 :(得分:3)

查看第一个错误并忽略其他错误。

一种可能性是第一个错误表示未找到其中一个#include。如果是这样,只要解决这个问题,那么一大堆错误很可能会从这个问题中产生影响。

也许你错过了pkg-config命令行中需要的模块之一,例如gstreamer-interfaces-0.10,或许只是猜测。

答案 1 :(得分:1)

不确定这是否有帮助,但我遇到了同样的错误。 (我正在使用XCode 3.2.5 for mac开发。)

我想构建一个链接到我的macports库/ opt / local / lib和/ opt / local / include

的应用程序

我做了以下事情。

  1. 在“目标”下,双击“目标应用程序”

  2. 在“搜索路径”下, 一个。始终搜索用户路径[关闭] 湾标题搜索路径[将路径添加到标题位置] ex。的/ usr /本地/包括/ X C。库搜索路径[将路径添加到共享库]

  3. 编译并运行,应该修复错误

  4. 如果您不确定库的位置,请使用pkg-config查找它们。

    pkg-config用法:

    pkg-config --cflags

    例如:pkg-config --cflags glib-2.0

      
        

    -I / opt / local / include / glib-2.0 -I / opt / local / lib / glib-2.0 / include -I / opt / local / include

      

    然后,您可以查看这些目录,查看是否包含缺少的依赖项,然后将路径添加到“搜索路径”下的“标题”或“库”路径。

    希望这有帮助。

答案 2 :(得分:0)

没有代码很难说。但我敢打赌缺少一个分号,或者宏可能出错。这总是会产生那些奇怪的消息,即使代码不是你自己的代码。

仔细检查自己的代码,或者尝试添加更多调试标志,例如-W * family(请参阅GCC