0

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

我刚刚写了一个中等规模的程序,我在编译时遇到了一些麻烦。我的包含如下所示:

#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>

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

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

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'

等等等等。

任何帮助将不胜感激。我确定这是某种愚蠢的错误,无论是链接还是包含,但我就是想不通。

4

3 回答 3

3

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

一种可能性是第一个错误说没有找到#include 之一。如果是这样,只需修复它,一大堆错误可能是该问题的后果。

也许您在 pkg-config 命令行上缺少一个所需的模块,例如 gstreamer-interfaces-0.10,也许只是猜测。

于 2011-03-06T03:47:13.210 回答
1

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

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

我做了以下。

  1. 在 Targets 下,双击 Target App

  2. 在“搜索路径”下,a。始终搜索用户路径 [关闭] b。标头搜索路径 [将路径添加到您的标头位置] 例如。/usr/local/include/x c. 库搜索路径 [将路径添加到您的共享库]

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

如果您不确定这些库在哪里,请使用 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

然后您可以查看这些目录,查看是否包含缺少的依赖项,然后将路径添加到 Search Paths 下的“headers”或“library”路径。

希望这可以帮助。

于 2011-03-14T20:02:36.763 回答
0

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

仔细检查您自己的代码,也许尝试添加更多调试标志,例如 -W* 系列(参见GCC

于 2011-03-05T22:48:14.447 回答