我是一个相对较新的程序员,如果这是一个相当愚蠢的问题,请原谅我。
我刚刚写了一个中等规模的程序,我在编译时遇到了一些麻烦。 我的包括这样:
#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'
等等,等等。
非常感谢任何帮助。我确定这是一种愚蠢的错误,无论是链接还是包含,但我无法弄明白。
答案 0 :(得分:3)
查看第一个错误并忽略其他错误。
一种可能性是第一个错误表示未找到其中一个#include。如果是这样,只要解决这个问题,那么一大堆错误很可能会从这个问题中产生影响。
也许你错过了pkg-config命令行中需要的模块之一,例如gstreamer-interfaces-0.10,或许只是猜测。
答案 1 :(得分:1)
不确定这是否有帮助,但我遇到了同样的错误。 (我正在使用XCode 3.2.5 for mac开发。)
我想构建一个链接到我的macports库/ opt / local / lib和/ opt / local / include
的应用程序我做了以下事情。
在“目标”下,双击“目标应用程序”
在“搜索路径”下, 一个。始终搜索用户路径[关闭] 湾标题搜索路径[将路径添加到标题位置] ex。的/ usr /本地/包括/ X C。库搜索路径[将路径添加到共享库]
编译并运行,应该修复错误
如果您不确定库的位置,请使用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)